本帖最后由 缥缈九哥 于 2012-9-14 12:11 编辑
- ;/*********************基本功能实现跑马灯的效果**********************/
- ;/*********************GPA2,3,4,5为输出模式,低电平亮*****************/
- #include "NUC1xx.h"
- #include "DRVGPIO.h"
- #include "DRVSYS.h"
-
- static uint8_t EGPADATA=0xfb;
- static uint16_t EGPBDATA=0x0000;
- static int8_t Led_Count;
-
- void InitSYS()
- {
- UNLOCKREG(x); //解锁
- DrvSYS_SetOscCtrl(E_SYS_XTL12M, 1); //使能外部12M
- DrvSYS_Delay(5000);
- LOCKREG(x);
- }
- void InitGpio()
- {
- DrvGPIO_Open(E_GPB, 10,E_IO_OUTPUT);
- DrvGPIO_Open(E_GPA, 2, E_IO_OUTPUT); //设置GPA2为输出模式;
- DrvGPIO_Open(E_GPA, 12, E_IO_INPUT);
- DrvGPIO_SetPortBits(E_GPA,EGPADATA); //给端口写数据,这是整个端口操作;
- DrvGPIO_SetPortBits(E_GPB,EGPBDATA);
- }
- void Delay_ms()
- {
- uint32_t x, y;
- for(x=1000;x>=5;x--)
- for(y=5;y<1000;y++);
- }
- int main()
- {
- InitSYS();
- InitGpio();
-
- while(1)
- {
- for(Led_Count=0;Led_Count<=3;++Led_Count)
- {
- InitGpio();
- Delay_ms();
- EGPADATA=((EGPADATA<<1)|0x04);
-
-
- if(EGPADATA==0xBC) //由于助学板只有4个LED灯,所以计数达到这个值再重新赋值;
- {
-
- EGPADATA=0xFb;
- Led_Count=-1;
- DrvGPIO_SetBit(E_GPB, ~EGPBDATA);
- }
-
- }
-
- }
-
- }
|