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