程序还是使用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;
}
}
}
|