2016-11-09 5 views
0

저는 ESP8266을 연구 중입니다. 그리고 Arduino IDE를 사용하여 FTDI를 통해 직접 프로그래밍합니다. GPIO와 UART 인터럽트가 동시에 발생하거나 UART가 뭔가를 보내거나받을 때 GPIO 이벤트가 발생할 때 스택에 문제가 있습니다. Arduino에서 인터럽트 우선 순위를 설정할 수 있습니까?Arduino에서 인터럽트 우선 순위를 설정하는 방법은 무엇입니까?

+0

인터럽트 코드를 표시하십시오. 스택이 오버플로되면 인터럽트 우선 순위로 문제가 해결되지 않을 수 있습니다. – tddguru

+0

문제는 스택에 데이터를 지우는 것입니다. UART와 GPIO 인터럽트가 동시에 발생하면 –

+0

이 발생하고 txed 데이터로 가비지 값이 생깁니다. –

답변

1

Arduino의 Interrumpts에는 변경할 수없는 미리 정의 된 우선 순위가 있습니다. 여기에 있습니다 :

1 Reset 
2 External Interrupt Request 0 (pin D2)   (INT0_vect) 
3 External Interrupt Request 1 (pin D3)   (INT1_vect) 
4 Pin Change Interrupt Request 0 (pins D8 to D13) (PCINT0_vect) 
5 Pin Change Interrupt Request 1 (pins A0 to A5) (PCINT1_vect) 
6 Pin Change Interrupt Request 2 (pins D0 to D7) (PCINT2_vect) 
7 Watchdog Time-out Interrupt      (WDT_vect) 
8 Timer/Counter2 Compare Match A     (TIMER2_COMPA_vect) 
9 Timer/Counter2 Compare Match B     (TIMER2_COMPB_vect) 
10 Timer/Counter2 Overflow       (TIMER2_OVF_vect) 
11 Timer/Counter1 Capture Event     (TIMER1_CAPT_vect) 
12 Timer/Counter1 Compare Match A     (TIMER1_COMPA_vect) 
13 Timer/Counter1 Compare Match B     (TIMER1_COMPB_vect) 
14 Timer/Counter1 Overflow       (TIMER1_OVF_vect) 
15 Timer/Counter0 Compare Match A     (TIMER0_COMPA_vect) 
16 Timer/Counter0 Compare Match B     (TIMER0_COMPB_vect) 
17 Timer/Counter0 Overflow       (TIMER0_OVF_vect) 
18 SPI Serial Transfer Complete     (SPI_STC_vect) 
19 USART Rx Complete        (USART_RX_vect) 
20 USART, Data Register Empty      (USART_UDRE_vect) 
21 USART, Tx Complete        (USART_TX_vect) 
22 ADC Conversion Complete       (ADC_vect) 
23 EEPROM Ready         (EE_READY_vect) 
24 Analog Comparator        (ANALOG_COMP_vect) 
25 2-wire Serial Interface (I2C)     (TWI_vect) 
26 Store Program Memory Ready      (SPM_READY_vect) 

자세한 내용은 here을 참조하십시오.