【发布时间】:2010-04-10 09:10:03
【问题描述】:
我花了很长时间使用完整的 GCC 工具链(一切都是最新的当前稳定版本)设置我的 AVR 开发系统,并且我已经解决了大多数问题,但只有一个。
以下代码给了我一个我没有得到的错误。 AVR 汇编手册指出 sbi 指令可以接受 0-7 作为常量表达式,但我仍然出错。谁能解释一下为什么会这样?
#ifndef __AVR_ATmega168__
#define __AVR_ATmega168__
#endif
#include <avr/io.h>
rjmp Init
Init:
ser r16
out DDRB, r16
out DDRD, r16
clr r16
out PORTB, r16
out PORTD, r16
Start:
sbi PORTB, 0
rjmp Start
有问题的行是 sbi PORTB, 0。
编译/组装:
avr-gcc ledon.S -mmcu=atmega168
【问题讨论】:
-
什么?可以直接在168上的端口上操作吗?