日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

LPC1768 Timer0详细Demo使用示例

發布時間:2024/1/1 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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使用示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。