Linglong之AVR程例3 流水灯
先这里简单的介绍下我的硬件,8个LED接到PA口上,公共端接地。
程序:
#include avr/io.h>
#include
int main(void)
{
unsigned char i = 0;
DDRA = 0xff;
while(1)
{
}
}这里我们主要讲讲while(1)语句部分。
第一句:PORTA = 0x01
第二句:if(++i>=8)i=0;
这里一个要重点注意的地方就是++i,而不是i++。这两个的区别就是是先加再执行,还是执行了再加。这是有不同的,大家可以试着改一下,体会下这两个的不一样。
第三句就是延时了没有什么好说的。
现在我们再重新的回顾下这个while(1)语句的一个执行过程。首先0x01左移0位,将0x01赋给PA口,点亮第一个LED。再对i进行自加0+1=1,1〈 8则不对其进行清0操作,最后是延时一会。
第二次执行PORTA=0x01
如此循环下去,当循环8次后i被清0,再从第一个LED亮起。
AVR程例流水 相关文章:
- Windows CE 进程、线程和内存管理(11-09)
- RedHatLinux新手入门教程(5)(11-12)
- uClinux介绍(11-09)
- openwebmailV1.60安装教学(11-12)
- Linux嵌入式系统开发平台选型探讨(11-09)
- Windows CE 进程、线程和内存管理(二)(11-09)