在mplab xc8 IDE中安全使用ei()与AVR Assembler sei()相同吗?

时间:2017-01-12 00:30:08

标签: avr pic avr-gcc microchip xc8

下式给出: http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_XC8_C_Compiler_User_Guide.pdf XC8' ei(); //启用全局中断

XC8' s di()​​; //禁用全局中断

AVR' si()http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html

AVR' s cli()http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_CLI.html

然后可以说ei()== sei()&& di()== cli()并且可以在切换平台时互换使用?

2 个答案:

答案 0 :(得分:2)

这是关于两个芯片上的中断系统的一般说法。它们在很多方面都有很大不同。

那就是说,是的,宏设置并清除状态寄存器中的一个位,因此宏的运行方式相同。

答案 1 :(得分:0)

如何通过XC8为Atmega设置中断?我读 MPLAB_XC8_C_Compiler_User_Guide_for_AVR

下面是一个中断功能的例子。

void __interrupt(SPI_STC_vect_num) spi_Isr(void) {    
//I coment this: process(SPI_SlaveReceive());  
return;
}

错误

../main.c:10:18: error: expected declaration specifiers or '...' before numeric constant
                 from ../main.h:3,
 void __interrupt(SPI_STC_vect_num) spi_Isr(void) {