主题 : 基于linux的裸机led流水灯程序 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 55009
精华: 0
发帖: 8
金钱: 40 两
威望: 8 点
贡献值: 0 点
综合积分: 16 分
注册时间: 2011-09-10
最后登录: 2014-08-07
楼主  发表于: 2014-02-03 00:05

 基于linux的裸机led流水灯程序

原光盘的程序如下:
复制代码
  1. int main()
  2. {
  3.     int i = 0x10;
  4.     // 配置引脚
  5.     volatile unsigned long *gpkcon0 = (volatile unsigned long *)0x7F008800;
  6.     volatile unsigned long *gpkdat = (volatile unsigned long *)0x7F008808;
  7.     
  8.     *gpkcon0 = 0x11110000;
  9.     // 跑马灯
  10.     while (1)
  11.     {
  12.         *gpkdat = i;
  13.         i++;
  14.         if (i == 0x100 )
  15.             i = 0x10;
  16.         delay();
  17.     }
  18.     
  19.     return 0;
  20. }


while(1)中的那一小段怎么看都不像流水灯,纯粹误导人阿

改造后的程序
复制代码
  1.     // 跑马灯
  2.     while (1)
  3.     {
  4.         *gpkdat = i;
  5.         if( i >= 0x100 )
  6.             i = 0x10;
  7.         else
  8.             i <<= 1;
  9.         
  10.         delay();
  11.     }


这才像嘛,编译 运行,完全正确

对了 这么改之后得增加延时时间