久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 11850|回復: 1
打印 上一主題 下一主題
收起左側

STM8L的TIM4定時功能詳解 含例程

[復制鏈接]
跳轉到指定樓層
樓主
ID:140343 發表于 2016-10-10 00:45 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
TIM4是STM8最簡單的定時器,忽略掉級聯同步的功能,TIM4就只具有定時功能.非常適合剛剛接觸STM8定時器的初學者學習.
從上圖可以看到,TIM4由一個分頻器,自動重裝寄存器和計數器組成,結構非常簡單.
系統主時鐘fsysclk經TIM4分頻器分頻后,提供給TIM4作為計數時鐘.
TIM4是一個向上計數的定時器.從0開始計數,當計數到與自動重載寄存器的值相等時,產生溢出,重新從0開始計數.

定時器溢出時,如果TIM4_CR1中的UDIS位為0,則產生一個更新事件,若此時打開了TIM4的中斷,則進入中斷.如果溢出時,UDIS為1,則不會進入中斷.


本文利用TIM4的定時功能,實現LED閃爍.TIM4周期性的進入中斷,翻轉LED控制IO,控制LED閃爍.
在程序中有對定時時間計算的過程,這里再重復一遍.
系統時鐘頻率默認為:16M/ 2^3 =2M
本例程中TIM4的分頻器分頻值為10,則最終提供給TIM4的頻率為:2M/2^10=2M/1024=1953.125Hz.
本例程TIM4的重裝值為200,所以TIM4的溢出頻率為:1953.125Hz/200=9.76Hz.
溢出周期為:1000ms/9.76=102.4ms
所以每隔102ms,會進入一次定時器中斷.
下圖是,使用邏輯分析儀,測到的LED的控制IO的輸出波形,可以看到,LED亮和滅的時間都為102.8ms.與理論計算值一致,誤差是由于使用的是內部時鐘,這個時鐘不準.




  1. /*硬件連接*/

  2. // PC7---->LED

  3. /****************************************************************************************

  4. *開發環境:IAR for stm8 v6.5.3

  5. *硬件平臺:STM8L-DISCOVERY

  6. *功能說明:配置TIM4定時器,實現定時進入TIM4中斷,反轉LED電平,測量LED的IO得到頻率,與理論計算時間比對,驗證定時功能

  7. *作    者:茗風

  8. ****************************************************************************************/

  9. #include"iostm8l152c6.h"

  10. #include"stdint.h"

  11. /******************************************************************************************************

  12. *  名    稱:void GPIO_Init(void)

  13. *  功    能:初始化PC7為高速推挽輸出

  14. *  入口參數:無

  15. *  出口參數:無

  16. *  說    明:測量系統時鐘頻率的IO,測量到的頻率有定時器配置決定

  17. *  范    例:無

  18. ******************************************************************************************************/

  19. void GPIO_Init(void)

  20. {

  21.    PC_CR1_C17  =1;//推挽輸出

  22.    PC_CR2_C27  =1;//高速輸出

  23.    PC_DDR_DDR7 =1;//PC4輸出

  24. //   PC_ODR_ODR7 =0;//輸出低電平

  25. }

  26. /******************************************************************************************************

  27. *  名    稱:void TIMER4_Init(void)

  28. *  功    能:stm8的TIM4定時器初始化

  29. *  入口參數:無

  30. *  出口參數:無

  31. *  說    明:TIM4被此函數配置為204ms進入一次TIM4中斷,由于使用的是內部RC時鐘,實際時間會有一定偏差

  32. *  范    例:無

  33. ******************************************************************************************************/

  34. void TIMER4_Init(void)

  35. {

  36.   //-------打開TIM4外設時鐘-------

  37.   CLK_PCKENR1_PCKEN12=1;//打開定時器1時鐘

  38.   

  39.   //----禁用預裝載寄存器----

  40.   TIM4_CR1_ARPE =0;//不經過緩存,分頻值和重裝值立即被寫入.

  41.   //除非需要頻繁的在定時器運行時,改變分頻值和重裝值,否則沒必要使用預裝載寄存器

  42.   

  43.   //------設置TIM4時鐘分頻值------

  44.   TIM4_PSCR_PSC=10;//分頻值  2M/2^10=2M/1024=1953.125Hz


  45.   

  46.   //-重裝值,TIM4從0計數到此值,發生溢出-

  47.   TIM4_ARR=200;//自動重裝值    1953.125Hz/200=9.76HZ

  48.   //1000ms/9.76=102ms

  49.   //TIM4定時器每隔102ms進入一次中斷

  50.   //本程序,每次進入中斷后會反轉接LED的IO電平,所以LED閃爍周期為2*102ms=204ms

  51.   //LED閃爍頻率為 1000ms/204ms=4.9Hz

  52.   

  53.   //讀者可以改變ARR值和PSC值,根據上面計算過程,驗證定時器的這種功能

  54.   

  55.   TIM4_CR1_URS=1;//僅當計數器溢出時才發生中斷請求

  56.   TIM4_CR1_UDIS=0;//允許更新中斷


  57.   TIM4_CR1_CEN=1;//開啟計數器

  58.   TIM4_IER_UIE=1;// update interrupt enable

  59. }

  60. /******************************************************************************************************

  61. *  名    稱:int main(void)

  62. *  功    能:通過PC4輸出選擇的時鐘

  63. *  入口參數:無

  64. *  出口參數:無

  65. *  說    明:因為STM8l discovery沒有接外部高速晶振,所以沒辦法輸出HSE,不要

  66. *  范    例:無

  67. ******************************************************************************************************/

  68. void main( void )

  69. {

  70.   GPIO_Init();

  71.   TIMER4_Init();

  72.   asm("rim");               //開啟全局中斷

  73.   while(1)

  74.   {

  75.   //   asm("wfi");

  76.   }

  77. }

  78. #pragma vector=TIM4_UIF_vector

  79. __interrupt void TIM4_UIF_ISR (void)

  80. {

  81.    PC_ODR_ODR7 ^=1;//控制LED1的亮滅

  82.    TIM4_SR1_UIF=0;//清除中斷標志位

  83. }
復制代碼




分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:18591 發表于 2019-2-4 15:01 | 只看該作者
感謝分享!!!!!!!!!!!!!!!!!!!!!!!
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 福利视频网站 | 视频在线观看亚洲 | 日韩精品免费在线观看 | 在线一区视频 | 精品成人佐山爱一区二区 | 一级黄色毛片a | 亚洲成人在线网 | 欧美三级在线 | 国产精品1区 | 成人国产在线观看 | 黄色免费在线网址 | 日韩精品成人网 | 久色视频在线 | 在线观看日韩精品视频 | 亚洲精品一区二区三区蜜桃久 | 午夜理伦三级理论三级在线观看 | 最新国产精品精品视频 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 国产精品久久久久久久久久免费 | 狠狠色狠狠色综合日日92 | 一区二区在线 | 91亚洲精华国产 | 涩涩鲁亚洲精品一区二区 | 观看毛片 | 视频一区二区中文字幕 | 欧洲一区二区视频 | 亚洲精品久久久久久一区二区 | 久草www| 日本午夜视频 | 超碰日本 | 在线色网 | 亚洲精品一区二区三区中文字幕 | 天天操夜夜爽 | 免费激情av | 一呦二呦三呦国产精品 | 亚洲精品久久久久久国产精华液 | 日本在线视 | 国产色片 | 91成人在线 | 午夜在线小视频 | 欧洲视频一区二区 |