本帖最后由 缥缈九哥 于 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);
}
}
}
}
|