我正在尝试使用imagecraft编译器avr在汇编中进行一些预处理。到目前为止,我最好的猜测是这样的:
#define TEST 1
#if TEST == 1
ldi R20, 0xFF
#else
ldi R20, 0xF1
#endif
但是这样做会给编译错误:
absolute expression expected
我该如何解决这个问题,或者有更好的方法吗?
午
答案 0 :(得分:1)
创建一个这样的答案:
经过一番挖掘后,我找到了正确的解决方案。显然iccavr保留了.define derective来声明别名'到寄存器,所以上面如果实际解决了
.if R1 == 1
生成错误消息。解决方案是使用语法声明符号常量而不是define:
TEST = 1
然后按预期工作。