/*---------------------------------------------------------------------------------------------------------*/
/* */
/* Copyright(c) 2009 Nuvoton Technology Corp. All rights reserved. */
/* */
/*---------------------------------------------------------------------------------------------------------*/
#include <stdio.h>
#include "NUC1xx.h"
#include "Driver\DrvGPIO.h"
#include "Driver\DrvSYS.h"
#ifndef SYSTEM
#define SYSTEM (0) //(1)
#endif
/*************************************************************************************
** Function name: delay_loop
** Descriptions: 延时子程序
** input parameters: 无
** output parameters: 无
** Returned value: 无
*************************************************************************************/
void delay_loop(void)
{
uint32_t i,j;
for(i=800;i>0;i--)
for(j=500;j>0;j--);
}
/*************************************************************************************
** Function name:
** Descriptions:
**
** input parameters:
** output parameters:
** Returned value:
*************************************************************************************/
#define delay_1S() { delay_loop(); delay_loop(); delay_loop();}
uint32_t temp;
int main (void)
{
/* SYSCLK =>12Mhz*/ //外部晶振使能
UNLOCKREG();
SYSCLK->PWRCON.XTL12M_EN = 1;
LOCKREG();
#if SYSTEM
GPIOA->PMD.PMD0=1;
GPIOA->PMD.PMD1=1;
GPIOA->PMD.PMD2=1;
GPIOA->PMD.PMD3=1;
GPIOA->PMD.PMD4=1;
GPIOA->PMD.PMD5=1;
GPIOA->PMD.PMD6=1;
GPIOA->PMD.PMD7=1;
GPIOA->PMD.PMD8=1;
#else
DrvGPIO_Open( E_GPA, 0, E_IO_OUTPUT );
DrvGPIO_Open( E_GPA, 1, E_IO_OUTPUT );
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_GPA, 6, E_IO_OUTPUT );
DrvGPIO_Open( E_GPA, 7, E_IO_OUTPUT );
DrvGPIO_Open( E_GPA, 8, E_IO_OUTPUT );
#endif
while(1)
{
#if SYSTEM
GPIOA->DOUT&=~(1<<0);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<1);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<2);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<3);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<4);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<5);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<6);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<7);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<0);
GPIOA->DOUT|=(1<<8);
delay_1S();
GPIOA->DOUT&=~(1<<8);
GPIOA->DOUT|=(1<<1);
GPIOA->DOUT|=(1<<2);
GPIOA->DOUT|=(1<<3);
GPIOA->DOUT|=(1<<4);
GPIOA->DOUT|=(1<<5);
GPIOA->DOUT|=(1<<6);
GPIOA->DOUT|=(1<<7);
GPIOA->DOUT|=(1<<0);
delay_1S();
#else
DrvGPIO_ClrBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,0);
DrvGPIO_SetBit(E_GPA,8);
delay_1S();
DrvGPIO_ClrBit(E_GPA,8);
DrvGPIO_SetBit(E_GPA,1);
DrvGPIO_SetBit(E_GPA,2);
DrvGPIO_SetBit(E_GPA,3);
DrvGPIO_SetBit(E_GPA,4);
DrvGPIO_SetBit(E_GPA,5);
DrvGPIO_SetBit(E_GPA,6);
DrvGPIO_SetBit(E_GPA,7);
DrvGPIO_SetBit(E_GPA,0);
delay_1S();
#endif
}
}
/*
作者:21IC_strang
2011-08-15
实现功能:九路流水灯
接线方式: 主板 显示板
PA.0----LED1
PA.1----LED2
PA.2----LED3
PA.3----LED4
PA.4----LED5
PA.5----LED6
PA.6----LED7
PA.7----LED8
PA.8----LED9
VDD ----12V
GND ----GND
*/