lpc1768的rit使用
扫描二维码
随时随地手机看文章
LPC1768在系统滴答定时器和通用定时器之外还引入了一个定时器,叫做重复定时器RIT,该定时器只能用于定时操作,带有一个中断,我个人的感觉,这似乎是为了延时函数设计的一个定时器
那么使用该定时器时遵循什么流程?
第一,打开时钟
第二,我们要确定定时器从pclk分频数值,这要靠另外一个寄存器
第三,先关闭定时器
第四 设置寄存器比较值
第五 清空或者屏蔽一些特定的比较屏蔽位
最后打开中断,启动定时器
#define RIT_INT_POSITION 0
#define RIT_ENCLR_POSITION 1
#define RIT_ENBR_POSITION 2
#define RIT_EN_POSITION 3
void RitInit(u32 count)
{
LPC_SC->PCONP"=(1<<16);//打开时钟 sys中四分频 25M
LPC_RIT->RICTRL&=~(1<<3);
LPC_RIT->RICOMPVAL=count;
// LPC_RIT->RIMASK = count;
LPC_RIT->RIMASK=0x80000000;
LPC_RIT->RICOUNTER=0;
NVIC_EnableIRQ(RIT_IRQn); /* enable irq in nvic */
LPC_RIT->RICTRL=(1< } 最后,我们需要在rit的中断函数中响应中断,如下 void RIT_IRQHandler() { u8 state=LPC_RIT->RICTRL; if(state&0x01) //有中断发生 { RitStop(); LPC_RIT->RICOUNTER=0; LPC_RIT->RICTRL|=0x01; //清除中断 RIT_INT_CALLBACK; RitStart(); } }