';IRQn#u型&x27;和';Tc&x27;编译Arduino草图时出现未定义错误

';IRQn#u型&x27;和';Tc&x27;编译Arduino草图时出现未定义错误,arduino,arduino-ide,Arduino,Arduino Ide,我在草图中引用了IRQn_Type和Tc类型(用于找到的startTimer函数),但我得到一个编译错误,说这些类型“未在此范围内声明”。这些不是“内置”类型吗?如果没有,我是否必须包含标题?Dan,如果您试图进行中断,这里是Arduino SE站点的列表 和在gcc avr头文件中定义。与我在Atmel Studio中从C编程AVR时使用的相同: #define INT0_vect _VECTOR(1) /* External Interrupt Request 0 */

我在草图中引用了IRQn_Type和Tc类型(用于找到的startTimer函数),但我得到一个编译错误,说这些类型“未在此范围内声明”。这些不是“内置”类型吗?如果没有,我是否必须包含标题?

Dan,如果您试图进行中断,这里是Arduino SE站点的列表 和在gcc avr头文件中定义。与我在Atmel Studio中从C编程AVR时使用的相同:

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

很乐意为您解答特定的编程问题,或者您也可以

我正在编译Arduino到期版,但我没有在工具板下选择该板。一旦我这样做了,我就可以编译了。

Dan,你想做什么,中断?我需要一种方法来定期轮询连接到Arduino的一些外围设备,所以我使用了这里找到的startTimer方法:,它显然使用中断。然而,它不会为我建造。特别是找不到类型“Tc”和“IRQn_Type”。示例代码没有引用我可以看到的标题,所以我不知道我缺少了什么。@Dan该页面说
Re:Timer Interrupts on Due
,除非您使用的是Due模型,它有更多的计时器和不同的头文件,我认为该页面上的内容不适合您。你为什么不提出你想做什么的问题,让我们/我帮你解决呢?我正在使用到期应付账款。我的问题是:如果找不到包含Tc和IRQn_类型符号的草图,我可能会遗漏什么。@Dan不知道,以前从未见过任何与Arduino相关的“IRQ”。Tc可能表示“计时器/计数器”c,其中c是众多计时器/计数器模块之一。IRQ可能意味着ISR(事件),这是标记中断服务例程的常见调用约定。但我只是在猜测。