2016-07-04 10 views

답변

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] */ 
+0

고마워요! 동일한 질문을 참조하면 '#pragma vector = TIMERA0_VECTOR' '__interrupt void Timer_A (void)'는 무엇을 의미합니까? –

+0

@EuegevHaoeiyv TIMERA0_VECTOR 인터럽트를 처리 할 인터럽트 서비스 루틴 인 'Timer_A'를 정의하는 IAR 컴파일러 구문과 비슷합니다 (본문이 누락 된 경우 제외). – kfx