关于atmega16的一个简单程序问题

#include<iom16v.h>#include<macros.h>voiddelay(unsignedintms){unsignedinti,j;for(i=0;i... #include<iom16v.h>
#include<macros.h>

void delay(unsigned int ms)
{
unsigned int i,j;
for(i=0;i<ms;i++)
for(j=0;j<1114;j++);
}
void main()
{
unsigned int i;
DDRA=BIT(2);
PORTA=BIT(2);

while(1)
{
for(i=0;i<8;i++)
{
DDRB=BIT(i);
PORTB=~BIT(i);
delay(200);
}
for(i=7;i>=0;i--)
{
DDRB=BIT(i);
PORTB=~BIT(i);
delay(200);
}

for(i=0;i<5;i++)
{
DDRB=0XFF;
PORTB=0B00000000;
delay(300);
PORTB=0B11111111;
delay(300);
}

}
}
这个程序是用来点亮led的
PA2是锁存器控制端,PB0~7通过锁存器连接LED。
该程序在开发板上只能运行前两个for循环,求高手指点。
展开
 我来答
等待_不需言语
2011-02-16
知道答主
回答量:10
采纳率:0%
帮助的人:0
展开全部
unsigned int i; // i 的范围是0~65535
for(i=7;i>=0;i--) // i >= 0一直为真, 所以一直在循环
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式