打印
[新手园地]

第六批-新手学习 第二贴 按键LED

[复制链接]
1467|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tony0708|  楼主 | 2012-3-27 20:15 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
LED, gp, IO, pi, GPIO
程序还是使用CUBE大哥提供的模板。这个程序,实现的是,读出板子上按键的值,当按其中一个按键时,LED流水灯往右边去滚动显示,当按下另一个按键时,LED流水灯往左边滚动显示。

#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;
        uint8_t  flag =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);

         DrvGPIO_Open(E_GPB,14,E_IO_INPUT );  
           DrvGPIO_Open(E_GPB,15,E_IO_INPUT );

    while(1)
    {
              if (DrvGPIO_GetBit(E_GPB,14) == 0)
             {
                     flag=0;
                 }
                   if (DrvGPIO_GetBit(E_GPB,15) == 0)
             {
                     flag=1;
                 }

                 
                 if(flag==0)
                 {
                     count=(count+1)%8;
             delay(200);
             }
                 else if(flag==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;
          }
     }
}

KEY_LED.rar

524.78 KB

相关帖子

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

本版积分规则

0

主题

59

帖子

0

粉丝