打印
[新手园地]

第六批-新手学习 第一帖 LED流水灯

[复制链接]
1658|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tony0708|  楼主 | 2012-3-27 20:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本帖最后由 tony0708 于 2012-3-27 20:11 编辑

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

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


void delay(uint32_t i)
{
    uint32_t j;
    while(i--)
    {
        for(j=0;j<1000;j++);
    }   
}



int main ()
{
    uint32_t count=0;

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

    DrvGPIO_Open(E_GPA,2, E_IO_OUTPUT);               
    DrvGPIO_Open(E_GPA,3, E_IO_OUTPUT);
    DrvGPIO_Open(E_GPA,4, E_IO_OUTPUT);
    DrvGPIO_Open(E_GPA,5, E_IO_OUTPUT);

    while(1)
    {
         count=(count+1)%8;
         delay(200);
         
         switch(count)
         {
              case 0: DrvGPIO_ClrBit(E_GPA,2); break;         
              case 1: DrvGPIO_SetBit(E_GPA,2); break;
              case 2: DrvGPIO_ClrBit(E_GPA,3); break;
              case 3: DrvGPIO_SetBit(E_GPA,3); break;
              case 4: DrvGPIO_ClrBit(E_GPA,4); break;
              case 5: DrvGPIO_SetBit(E_GPA,4); break;
              case 6: DrvGPIO_ClrBit(E_GPA,5); break;
              case 7: DrvGPIO_SetBit(E_GPA,5); break;
          default: break;
          }
     }
}

led.rar

534.6 KB

相关帖子

沙发
益友电子| | 2012-3-28 14:16 | 只看该作者
支持一下,希望楼主能够在程序后面注释一下函数的功能

使用特权

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

本版积分规则

0

主题

59

帖子

0

粉丝