LPC1768 Timer0详细Demo使用示例
生活随笔
收集整理的這篇文章主要介紹了
LPC1768 Timer0详细Demo使用示例
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
設計要求: 設計一個基于Timer0,要求1ms定時中斷?
答: 代碼如下(開發環境:路虎NPC1768開發板)
/* Include files */ /* <<add include files here>> */ #include "lpc17xx_libcfg.h" #include "lpc17xx.h"/* Add Private Types */ /* <<add private type here >> */#define CCLK 100000000 #define PCLK0 CCLK/4/* Add Private Variables */ /* <<add private variables here >> *//* Add Private Functions */ /* <<add private functions here >> */void Init_Timer0(void) {LPC_TIM0->CTCR=0; //定時器模式LPC_TIM0->PR=0;LPC_TIM0->PC=0;LPC_TIM0->TC=0; //計數寄存器清零LPC_TIM0->MR0=PCLK0/1000-1;LPC_TIM0->MCR=0x03; //匹配后產生中斷和復位TCLPC_TIM0->TCR=1; //啟動定時器0NVIC_EnableIRQ(TIMER0_IRQn); }/*** @brief Main program body*/ int c_entry(void) {/* <<add code here >> */LPC_GPIO2->FIODIR = 0xff; /* LEDs PORT2 are Output */LPC_GPIO2->FIOPIN = 0x00;Init_Timer0();while(1);return 1; }void TIMER0_IRQHandler(void) {LPC_TIM0->IR |= 1; //清除MR0LPC_GPIO2->FIOPIN ^= (1<<0);__NOP(); }/* Support required entry point for other toolchain */ int main (void) {return c_entry(); }程序點撥: 第一次玩NPC單片機的,或者說之前玩的是STM32, 可能對定時器里的PR和PC這兩個寄存器有點蒙,它們的默認值是0,
?
?
說簡單點,PR是對PCLK進一步分配,PC值計數,計數到跟PR值相等的時候TC值才加1,可以將PR理解成Timerx的預分頻寄存器;
初始化時候PC保持默認值0就可以了。
還有一點需要注意下:
CPU主頻默認是100MHz,外設主頻默認是四分之一CCLK!!!
看下面的截圖就知道上面各個模塊的當前頻率值了:
總結
以上是生活随笔為你收集整理的LPC1768 Timer0详细Demo使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Jmeter 性能测试
- 下一篇: SSH允许跨域访问拦截器配置