특히 msp430F5438A에 대한 인터럽트 서비스 루틴 (ISR)의 포괄적 인 목록이 있습니까? 어떤 도움을 주시면 감사하겠습니다.msp430 시리즈 마이크로 컨트롤러의 인터럽트 서비스 루틴의 이름은 무엇입니까?
2
A
답변
2
함수가 사용되는 컴파일러에 의존하여 __attribute__((interrupt(nr)))
#pragma vector=nr
또는 인터럽트 벡터에 연결된다.
기능 이름은이며, 그 벡터 번호 만 중요합니다.
하드웨어 모듈 다음에 함수의 이름을 지정할 수 있지만 (kfx의 예제 목록에 대한 답변 참조) 하드웨어의 해당 부분에 할당 한 실제 함수 뒤에 이름을 지정하는 것이 좋습니다 (예 : red_button_gpio_interrupt()
). port1_interrupt()
).
2
msp430/include/msp430f5438a
에 대한 설명과 함께 #defines
의 목록을 찾을 수 있습니다 (msp430f5438a
의 경우, 다른 MCU 모델은 자체 헤더 파일을 가지고 있습니다). 거기에서
복사 - 붙여 넣기 :
/************************************************************
* Interrupt Vectors (offset from 0xFF80)
************************************************************/
#define RTC_VECTOR (0x0052) /* 0xFFD2 RTC */
#define PORT2_VECTOR (0x0054) /* 0xFFD4 Port 2 */
#define USCI_B3_VECTOR (0x0056) /* 0xFFD6 USCI B3 Receive/Transmit */
#define USCI_A3_VECTOR (0x0058) /* 0xFFD8 USCI A3 Receive/Transmit */
#define USCI_B1_VECTOR (0x005A) /* 0xFFDA USCI B1 Receive/Transmit */
#define USCI_A1_VECTOR (0x005C) /* 0xFFDC USCI A1 Receive/Transmit */
#define PORT1_VECTOR (0x005E) /* 0xFFDE Port 1 */
#define TIMER1_A1_VECTOR (0x0060) /* 0xFFE0 Timer1_A3 CC1-2, TA1 */
#define TIMER1_A0_VECTOR (0x0062) /* 0xFFE2 Timer1_A3 CC0 */
#define DMA_VECTOR (0x0064) /* 0xFFE4 DMA */
#define USCI_B2_VECTOR (0x0066) /* 0xFFE6 USCI B2 Receive/Transmit */
#define USCI_A2_VECTOR (0x0068) /* 0xFFE8 USCI A2 Receive/Transmit */
#define TIMER0_A1_VECTOR (0x006A) /* 0xFFEA Timer0_A5 CC1-4, TA */
#define TIMER0_A0_VECTOR (0x006C) /* 0xFFEC Timer0_A5 CC0 */
#define ADC12_VECTOR (0x006E) /* 0xFFEE ADC */
#define USCI_B0_VECTOR (0x0070) /* 0xFFF0 USCI B0 Receive/Transmit */
#define USCI_A0_VECTOR (0x0072) /* 0xFFF2 USCI A0 Receive/Transmit */
#define WDT_VECTOR (0x0074) /* 0xFFF4 Watchdog Timer */
#define TIMER0_B1_VECTOR (0x0076) /* 0xFFF6 Timer0_B7 CC1-6, TB */
#define TIMER0_B0_VECTOR (0x0078) /* 0xFFF8 Timer0_B7 CC0 */
#define UNMI_VECTOR (0x007A) /* 0xFFFA User Non-maskable */
#define SYSNMI_VECTOR (0x007C) /* 0xFFFC System Non-maskable */
#define RESET_VECTOR (0x007E) /* 0xFFFE Reset [Highest Priority] */
고마워요! 동일한 질문을 참조하면 '#pragma vector = TIMERA0_VECTOR' '__interrupt void Timer_A (void)'는 무엇을 의미합니까? –
@EuegevHaoeiyv TIMERA0_VECTOR 인터럽트를 처리 할 인터럽트 서비스 루틴 인 'Timer_A'를 정의하는 IAR 컴파일러 구문과 비슷합니다 (본문이 누락 된 경우 제외). – kfx