[新手园地] 第六批-新手学习 第一帖 LED流水灯

[复制链接]
2203|1
 楼主| tony0708 发表于 2012-3-27 20:10 | 显示全部楼层 |阅读模式
本帖最后由 tony0708 于 2012-3-27 20:11 编辑

      初学M0,刚开始有点无头绪,没有学习的方向。后来逛了论坛,然后看了一些新唐的官方资料,终于有点眉目了。 “[入门教程] 【菜农助学活动】资料汇总与更新”这篇帖子中很多资料都非常的实用,因为本论坛帖子的地址不固定的,所以我就不上连接啦。

      先从LED的操作开始学。我的程序,参考了上面帖子中“NUC工程模板”,这样入门方便了很多。
      在这个程序中,实现的,是板子上4个流水灯的滚动显示。从左到右,一次亮一个。
  1. #include <stdio.h>
  2. #include "DrvGPIO.h"
  3. #include "DrvSYS.h"
  4. #include "NUC1xx.h"


  5. void delay(uint32_t i)
  6. {
  7.     uint32_t j;
  8.     while(i--)
  9.     {
  10.         for(j=0;j<1000;j++);
  11.     }   
  12. }



  13. int main ()
  14. {
  15.     uint32_t count=0;

  16.     UNLOCKREG();
  17.     SYSCLK->WRCON.XTL12M_EN=1;
  18.     LOCKREG();

  19.     DrvGPIO_Open(E_GPA,2, E_IO_OUTPUT);               
  20.     DrvGPIO_Open(E_GPA,3, E_IO_OUTPUT);
  21.     DrvGPIO_Open(E_GPA,4, E_IO_OUTPUT);
  22.     DrvGPIO_Open(E_GPA,5, E_IO_OUTPUT);

  23.     while(1)
  24.     {
  25.          count=(count+1)%8;
  26.          delay(200);
  27.          
  28.          switch(count)
  29.          {
  30.               case 0: DrvGPIO_ClrBit(E_GPA,2); break;         
  31.               case 1: DrvGPIO_SetBit(E_GPA,2); break;
  32.               case 2: DrvGPIO_ClrBit(E_GPA,3); break;
  33.               case 3: DrvGPIO_SetBit(E_GPA,3); break;
  34.               case 4: DrvGPIO_ClrBit(E_GPA,4); break;
  35.               case 5: DrvGPIO_SetBit(E_GPA,4); break;
  36.               case 6: DrvGPIO_ClrBit(E_GPA,5); break;
  37.               case 7: DrvGPIO_SetBit(E_GPA,5); break;
  38.           default: break;
  39.           }
  40.      }
  41. }

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
益友电子 发表于 2012-3-28 14:16 | 显示全部楼层
支持一下,希望楼主能够在程序后面注释一下函数的功能
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

59

帖子

0

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