在 mplab xc8 IDE 中使用 ei() 与 AVR 汇编器 sei() 一样安全吗?
In mplab xc8 IDE Is it safe use ei() the same way as the AVR Assembler sei()?
鉴于:
http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_XC8_C_Compiler_User_Guide.pdf
XC8的ei(); // 启用全局中断
XC8的di(); // 禁用全局中断
和
AVR 的 sei() http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html
AVR 的 cli() http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_CLI.html
那么可以说 ei() == sei() && di() == cli() 并且在切换平台时可以互换使用吗?
这是关于两个芯片上的中断系统的非常笼统的陈述。他们在很多方面都非常不同。
也就是说,是的,宏设置和清除状态寄存器中的单个位,因此宏的操作方式相同。
Atmega如何通过XC8设置中断?我读
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) {
鉴于: http://ww1.microchip.com/downloads/en/DeviceDoc/MPLAB_XC8_C_Compiler_User_Guide.pdf XC8的ei(); // 启用全局中断
XC8的di(); // 禁用全局中断
和
AVR 的 sei() http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_SEI.html
AVR 的 cli() http://www.atmel.com/webdoc/avrassembler/avrassembler.wb_CLI.html
那么可以说 ei() == sei() && di() == cli() 并且在切换平台时可以互换使用吗?
这是关于两个芯片上的中断系统的非常笼统的陈述。他们在很多方面都非常不同。
也就是说,是的,宏设置和清除状态寄存器中的单个位,因此宏的操作方式相同。
Atmega如何通过XC8设置中断?我读 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) {