[AVR单片机] 请排错初写流水灯不动了

[复制链接]
1978|10
 楼主| ttl_web 发表于 2013-11-25 16:54 | 显示全部楼层 |阅读模式
本帖最后由 ttl_web 于 2013-11-25 20:06 编辑
  1. 硬件连接:
  2. PA0-8 ===== LED*8 ==== VCC
  3. 目标:
  4. PA上的8个LED流水显示

  5. #include<iom128v.h>
  6. #include <stdlib.h>

  7. unsigned int i,j,k;
  8. void main(void)
  9. {
  10.         k = 0;
  11.         DDRA = 0xff;
  12.         PORTA = 0xff;
  13.         while(1){
  14.                 if(k==8)
  15.                         k=0;
  16.                 PORTA = (1<<k);        
  17.                 k++;
  18.                 for (i=0;i<10;i++)
  19.                 {
  20.                 for (j=0;j<4000;j++);
  21.                 }
  22.         }
  23. }

jiangyuan1210 发表于 2013-11-25 19:30 | 显示全部楼层
这程序 要动才怪
 楼主| ttl_web 发表于 2013-11-25 20:08 | 显示全部楼层
来一个能改改的先
luofeng2g 发表于 2013-11-25 20:21 | 显示全部楼层
huangxz 发表于 2013-11-25 23:24 | 显示全部楼层
这个程序本身没什么问题啊,会流水的。
4M时钟大概1s左右移动一位,

评分

参与人数 1威望 +1 收起 理由
ttl_web + 1 赞一个!

查看全部评分

qin552011373 发表于 2013-11-25 23:57 | 显示全部楼层
就说一处错误,PA口是0到7,不是0到8


另外,楼主的代码风格很不好,你可以自己写,但是你要遵循前人的规则,也利于你以后的学习,也利于你的成长的
 楼主| ttl_web 发表于 2013-11-26 11:31 | 显示全部楼层
qin552011373 发表于 2013-11-25 23:57
就说一处错误,PA口是0到7,不是0到8

感谢版主指导,代码有待完善
 楼主| ttl_web 发表于 2013-11-26 15:42 | 显示全部楼层
修改后的代码流水+闪烁的
  1. #include<iom128v.h>
  2. #include <stdlib.h>

  3. unsigned int i,j;
  4. unsigned char t;
  5. void main(void)
  6. {
  7.         DDRA = 0xff;
  8.         PORTA = 0xff;
  9.                 t = 0x01;
  10.         while(1){
  11.                 if(t==0x00)
  12.                         t=0x01;
  13.                                 PORTA = ~t;
  14.                                 t = t<<1;                               
  15.                 for (i=0;i<50;i++)
  16.                 {
  17.                 for (j=0;j<40;j++);
  18.                 }
  19.                                 PORTA = 0xff;
  20.                 for (i=0;i<50;i++)
  21.                 {
  22.                 for (j=0;j<40;j++);
  23.                 }                               
  24.                                 PORTA = ~PORTA;               
  25.                 for (i=0;i<5;i++)
  26.                 {
  27.                 for (j=0;j<40;j++);
  28.                 }
  29.         }
  30. }
qin552011373 发表于 2013-11-26 17:34 | 显示全部楼层
ttl_web 发表于 2013-11-26 15:42
修改后的代码流水+闪烁的

改观不大,你没有参考别人的代码吗?
ayb_ice 发表于 2013-11-27 09:08 | 显示全部楼层
本帖最后由 ayb_ice 于 2013-11-27 09:10 编辑
qin552011373 发表于 2013-11-25 23:57
就说一处错误,PA口是0到7,不是0到8


LZ的代码结果是0~7啊,==8时,归零了

代码没有问题

只是将变量改为局部变量要好些
qin552011373 发表于 2013-11-27 09:47 | 显示全部楼层
ayb_ice 发表于 2013-11-27 09:08
LZ的代码结果是0~7啊,==8时,归零了

代码没有问题

我指的是他最开始的介绍呢,没有说程序的
您需要登录后才可以回帖 登录 | 注册

本版积分规则

9

主题

43

帖子

0

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