定义中断例程可以通过宏INTERRUPT()或SIGNAL()来完成。中断可以是预定义的中断向量表中的任意一个,但依赖于所选的器件。 宏INTERRUPT() 和 SIGNAL() 的不同点在于前者定义的中断例程在执行中允许响应其他中断请求,而后者则禁止响应其他中断。 例如ADC转换结束中断可以定义为 SIGNAL(SIG_ADC) { } 或者 INTERRUPT(SIG_ADC) { }
SIGNAL(SIG_INTERRUPT0) { //中断处理程序 } 宏INTERRUPT 的用法与SIGNAL 类似,区别在于SIGNAL 执行时全局中断触发位被清除、其他中断被禁止,INTERRUPT 执行时全局中断触发位被置位、其他中断可嵌套执行。 另外avr-libc 提供两个API 函数用于置位和清零全局中断触发位,它们分别是: void sei(void) 和 void cli(voi...
库函数按不同的类别声明在不同的头文件中,以字母为序分别介绍头文件: ctype.h:字符类型函数 eeprom.h:EEPROM 访问函数 errno.h:错误处理函数 ina90.h:与IAR C兼容的头文件 interrupt.h:中断处理函数 inttypes.h:定义不同的数据类型 io.h:包含寄存器定义和其它头文件 math.h:数学函数 pgmspace.h:与IAR C兼...
函数定义可参见interrupt.h,中断信号符号表参见sig-avr.h。 1.cli 用法:void cli(void); 说明:通过置位全局中断屏蔽位来禁止中断。其编译结果仅为一条汇编指令。 2.enable_external_int 用法:void enable_external_int(uint8_t ints); 说明:此函数访问GIMSK寄存器(对于MEGA器件则是EIMSK寄存器)。功能与宏outp...
员据某介加储信interrupt.h 之无屏隔串隔示储信sig-avr.h 1 cli 中void cli(void); 版知 格因饰于局门之无蔽禁于告仅情之无 他指时检利宏生且交编指令身 2 enable_external_int 中void enable_external_int(uint8_t ints); 版知 部员据封题GIMSK 器其通 言下 MEGA 通关注要 EIMSK 器其通 似...
名称:main.c 功能:模拟SPI程序测试 作者:emouse 时间:2011.1.11 版本:1.0 注意:无 ***/ #include"avr/io.h" #include"avr/interrupt.h" #include"util/delay.h" #define SetBit(Port,N) (Port|=(1< #define ClrBit(Port,N) (Port&=~(1< #define ...
在源程序当中声明一个 中断函数有以下两种方式,以外部中断 0 为例: 1: INTERRUPT(INT0_vect) { //中断函数的内容; } 2: SIGNAL(INT0_vect) { //中断函数内容; } 以上两种定义方式的区别在于,前者在拟行中断服务程序时,全局中断使能位有效,还可以 响应其他优先级高的中断请求,即支持中断嵌套.而后者在...
SIG_INTERRUPT0 INT1 外部中断请求1 SIG_INTERRUPT1 TIMER2 COMP 定时/计时器2比较匹配 SIG_OUTPUT_COMPARE2 TIMER2 OVF 定时/计时器2溢出 SIG_OVERFLOW2 TIMER1 COMPA 定时/计时器1比较匹配A SIG_OUTPUT_COMPARE1A TIMER1 COMPB 定时/计时器1比较匹配B SIG_OUTPUT_COMPARE1B TIMER1 OVF 定时/计时器1溢出 ...
voidinterrupt_handler(){ // 中断处理代码 } intmain(){ // 配置中断触发条件 sei();// 允许中断 while(1){ // 主程序代码 } } 4. 程序调试 当编写好GCC程序后,可以进行程序的调试和烧录。以下是程序调试的步骤: 4.1 编译程序 使用AVR工具链中的编译器将程序源代码编译成二进制文件。 avr-gcc -g ...
_VECTOR()A macro to convert an interrupt vector number to a real address. hardware/tools/avr/avr/include/avr/iom328p.h DDRxRegisters which determine if the digital pin is output mode or input mode. PORTxnRegisters for bi-directional I/O. ...