/*************************************************************************************
* main.c: the main file
* NXP --> LPC1768
*
*
* Author : light
* Date : 2012-4-23
*
* Email : lightwu@hotmail.com
***************************************************************************************/
#include
#include "GPIO.h"
volatile uint32_t Timer0Cont = 0;
/********************************************************************************
** Descriptions :timer0 initialze
**
** parameters :None
** Returned value :None
*********************************************************************************/
void Timer0Init(void)
{
LPC_SC->PCONP |= (1<<1); //打开功率控制
LPC_TIM0->TCR |= (1<<1); //复位定时器
LPC_TIM0->PR = 0x00; //预分频清零
LPC_TIM0->MR0 = 10000; //匹配寄存器与定时器计数器值相比较
LPC_TIM0->IR |= 0XFF; //清所有中断标志位
LPC_TIM0->MCR |= ((1<<1)|(1<<0)); //MR0与TC值匹配时将产生中断,TC复位
LPC_TIM0->TCR = (1<<0); //启动定时器
NVIC_EnableIRQ(TIMER0_IRQn); /* enable irq in nvic */
}
/********************************************************************************
** Descriptions :Timer0 interrupt
**
** parameters :None
** Returned value :None
*********************************************************************************/
void TIMER0_IRQHandler(void)
{
LPC_TIM0->IR |= (1<<0); //清中断标志
Timer0Cont++;
}
/*----------------------------------------------------------------------------
The main Function
*----------------------------------------------------------------------------*/
int main(void)
{
int loc;
SystemInit();
Timer0Init();
LedInit();
while(1)
{
if(1000 == Timer0Cont)
{
Timer0Cont = 0;
loc = ~loc;
if(!loc)
{
LedNOn(1);
LedNOn(2);
}
else
{
LedNOff(1);
LedNOff(2);
}
}
/* LedNOn(loc);
DelayMs(1000);
LedNOff(loc);
DelayMs(1000);
*/
}
}