使用Atmel为ATA5702自动钥匙扣提供的代码,该钥匙扣具有内部8位AVR。
在主例程中,编译器以不同的方式对待变量。我有三个变量
A1一个本地定义的字节int8_t A1 = 0;
DDRB寄存器,其地址使用SFR.h文件中的SFR_B宏定义
TW1BR寄存器,其地址使用SFR.h文件中的SFR_B_EXT_IO_R宏定义
当我进行编译和调试时,会收到一条警告,指出已定义并设置了A1,但从未使用过。当我在断点处读取值时,A1仅显示它是一个字节,但从未显示该值。无论我将其设置为什么,TWB1R始终读取零,而DDRB可以很好地读取设置的值。
为什么要对这些变量进行不同的处理而不能识别局部变量?