This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

MSP430FR5969 Interrupt Number

Other Parts Discussed in Thread: MSP430FR5969

Could anyone tell me the interrupt number for TA1CCR0 CCIFG0 word address 0FFEAh?

Below is the datasheet for the MSP430FR59XX:

  • Rodney Wong said:

    Could anyone tell me the interrupt number for TA1CCR0 CCIFG0 word address 0FFEAh?

     What do you mean whit this phrase?

     If it is the table position then you can get from address, (0xfffe-Address_Of_Vector)/2

     If it is the vector value then this is the address of service routine and must be set from compiler directive..

  • Hi Roberto,

    I am trying to fill this form from the sys/bios app.cfg:

    The workshop manual that I am using says that the interrupt number is suppose to be under the priority. However, there is no number. Only Highest and lowest is under priority. Do you suppose the I could set the number manually? And how would I do that?

  • Look into the <msp430fr5969.h> header file:

    #define TIMER0_A0_VECTOR    (46)     /* 0xFFEA Timer0_A3 CC0 */

  • I see. However, my 0xFFEA was defined for timer a1 and as 41.

    Thanks for the responses.
  • Rodney Wong said:
    I see. However, my 0xFFEA was defined for timer a1 and as 41.

     Right, so I grasped what you intended with interrupt number. Effectively some form of automate can be useful, but considering that task is set one time per project can be acceptable. (after one has learned where to seek information for every processor family is using.)

  • The assignment of interrupt vector addresses to peripheral interrupts is processor specific. This because different MSPs have different peripherals, and maintaining a global list with all possible vectors (even for devices with multiple module instances, such as 3*TimerA or 4*USCI) would not only waste address space with lots of unused entries, it would also make the controller-internal interrupt hardware unnecessarily complex. So the table is limited to 32 (on old MSPs) or 64 vectors beginning at 0xFFC0 (old) or 0xFF80 (new). Since (usually) unused vectors are at the bottom, the numbering often starts with the lowest existing vector, assigning the unused space below to normal code flash area. This is why the same address may have a different number and also a different meaning.

    However, this setup page you posted seems to be for SYS/BIOS generated virtual interrupt calls. That means, the BIOS has ISRs for each 'real' interrupt and provides configurable software calls for 'your' ISRs.
    For which you can configure arguments, priorities and event IDs - things that are hardcoded (priority) or not available (arguments, handle) for real hardware interrupts.
    Probably, 'interrupt number' in this form means something completely different than what you think (I never used SYS/BIOS myself). See the SYS/BIOS documentation for the explanation.
  • BIOS uses Timer A0 for Clock and Timestamp, therefore the RTOS workshop uses TIMER0_A1, which is vector 41. As mentioned, this is found in the file msp430fr5969.h - around line 4550. See below:

**Attention** This is a public forum