[AVR单片机] AVR新手,弱弱的问一个小问题

[复制链接]
2794|8
 楼主| pjn_1905 发表于 2012-4-24 14:43 | 显示全部楼层 |阅读模式
uint count;
DDRA=0xff;
PORTA=0XFF;

while (1)
      {
   
    for(count=0;count<8;count++)
    {
    PORTA=~(1<<count);
        delay_ms(50);
    }

/*
    PORTA=~(1<<count);
    if(++count>8)  count=0;
     delay_ms(1500);*/
      }


使用CV AVR编译器写的流水灯程序,第一次用FOR语句,但延迟比较小(比如100MS左右),看似还正常,但延迟到1秒以上时就发现流水灯只有第一个灯在间接闪了,为什么?而使用下面的语句(注释的)就可以?
hhxdpj 发表于 2012-5-11 11:39 | 显示全部楼层
joyme 发表于 2012-5-11 13:22 | 显示全部楼层
应该是看门狗导致,count没有初始化,看门狗引起的Reset下面的代码依然会自加,而for循环的那个reset后count从0开始
xsl1997 发表于 2012-5-15 23:28 | 显示全部楼层
学学,不错
zhouxinke 发表于 2013-1-19 19:03 | 显示全部楼层
始于16 发表于 2013-1-23 11:39 | 显示全部楼层
#include "./Headers/Global.h"
Void main(void)
{
unsigned char cnt_i;
DDRA=0xFF;                     
while(1)
  {
   for(cnt_i=0;cnt_i<8;cnt_i++)
    {
     PORTA=(1<<cnt_i);
     Delay_ms(200);         
     }
   for(cnt_i=7;cnt_i>=0;cnt_i--)
    {
     PORTA=(1<<cnt_i);
     Delay_ms(200);
     }
   }
}
始于16 发表于 2013-1-23 11:40 | 显示全部楼层
自己以前写的。。。。。
hodenshi 发表于 2013-1-23 12:00 | 显示全部楼层
最怕代码了,一看头疼
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

19

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部