打印
[AVR单片机]

AVR新手,弱弱的问一个小问题

[复制链接]
1977|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 | 只看该作者
count=0

使用特权

评论回复
板凳
joyme| | 2012-5-11 13:22 | 只看该作者
应该是看门狗导致,count没有初始化,看门狗引起的Reset下面的代码依然会自加,而for循环的那个reset后count从0开始

使用特权

评论回复
地板
xsl1997| | 2012-5-15 23:28 | 只看该作者
学学,不错

使用特权

评论回复
5
zhouxinke| | 2013-1-19 19:03 | 只看该作者
借用

使用特权

评论回复
6
始于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);
     }
   }
}

使用特权

评论回复
7
始于16| | 2013-1-23 11:40 | 只看该作者
自己以前写的。。。。。

使用特权

评论回复
8
hodenshi| | 2013-1-23 12:00 | 只看该作者
最怕代码了,一看头疼

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

19

帖子

1

粉丝