//其他通道的基本定时功能都能在这里实现
void Time0Mr0Init(u32 arr,u32 psc)
{
LPC_SC->PCONP |= (1<<1); //打开功率控制
LPC_TIM0->TCR |= (1<<1); //复位定时器
LPC_TIM0->MR0 = psc; //匹配寄存器与定时器计数器值相比较
LPC_TIM0->IR |= 0XFF; //清所有中断标志位
LPC_TIM0->MCR |= ((1<<1)|(1<<0)); //MR0与TC值匹配时将产生中断,TC复位
LPC_TIM0->PC = 0X00;
LPC_TIM0->PR = arr-1; //预分频
LPC_TIM0->TCR = (1<<0); //启动定时器
NVIC_EnableIRQ(TIMER0_IRQn); /* enable irq in nvic */
}
void TIMER0_IRQHandler(void)
{
if( LPC_TIM0->IR &0x01)
{
Time0Mr0CallBack;
}
LPC_TIM0->IR |= (1<<0); //清中断标志
}
时间: 2024-10-15 08:18:34