我正在尝试创建一个程序,以使用移位使PORTA的开发板上的每个位上的LED闪烁。当我模拟程序时,输出是0x01、0x02,ox04、0x10,而不是在0-7位之间进行转换。然后重新开始。是否由于某些原因我无法完全移入该8位寄存器?任何帮助将不胜感激。
#define F_CPU 1000000UL
#include <avr/io.h>
#include <util/delay.h>
int main(void)
{
DDRA = 0xFF;
while (1)
{
PORTA = 0x01;
_delay_ms(1000);
for (int count = 0; count < 7; count++)
{
PORTA = 1<<PORTA;
_delay_ms(1000);
}
}
}
答案 0 :(得分:1)
可能是这个意思
for (int count = 0; count < 8; count++)
{
PORTA = 1<<count;
_delay_ms(1000);
}