找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 17944|回復: 12
收起左側

STM8定時器TIM1-TIM6使用詳解與實驗程序

  [復制鏈接]
ID:170279 發(fā)表于 2017-12-9 11:58 | 顯示全部樓層 |閱讀模式
800.jpg
STM8定時器概述
QQ圖片20171208104009.png
STM8S提供三種類型的 TIM定時器:高級控制型(TIM1)、通用型(TIM2/TIM3/TIM5)和基本型定時器(TIM4/TIM6)。它們雖有不同功能但都基于共同的架構。此共同的架構使得采用各個定時器來設計應用變得非常容易與方便(相同的寄存器映射,相同的基本功能)。
16位高級控制定時器(TIM1)
● 16位向上、向下、向上/下自動裝載計數器
● 允許在指定數目的計數器周期之后更新定時器寄存器的重復計數器
● 16位可編程(可以實時修改)預分頻器,計數器時鐘頻率的分頻系數為1~65535之間的任意數值
● 同步電路,用于使用外部信號控制定時器以及定時器互聯 (某些型號的芯片沒有定時器互聯功能)
● 多達4個獨立通道可以配置成:
─  輸入捕獲
─  輸出比較
─  PWM 生成(邊緣或中間對齊模式)
─  六步 PWM 輸出
─  單脈沖模式輸出
─  三個支持帶互補輸出,并且死區(qū)時間可編程的通道
● 剎車輸入信號可以將定時器輸出信號置于復位狀態(tài)或者一個已知狀態(tài)
● 產生中斷的事件包括:
─  更新:計數器向上溢出/向下溢出,計數器初始化(通過軟件或者內部/外部觸發(fā))
─  觸發(fā)事件(計數器啟動、停止、初始化或者由內部/外部觸發(fā)計數)
─  輸入捕獲
─  輸出比較
─  剎車信號輸入
TIM1預分頻器

TIM1的預分頻器基于一個由16位寄存器(TIM1_PSCR)控制的16位計數器。由于這個控制寄存器帶有緩沖器,因此它能夠在運行時被改變。預分頻器可以將計數器的時鐘頻率按1到
65536之間的任意值分頻。


計數器的頻率可以由下式計算:
f CK_CNT = f CK_PSC / (PSCR[15:0] + 1)
向上計數模式
在向上計數模式中,計數器從0計數到用戶定義的比較值(TIMx_ARR寄存器的值),然后重新從0
開始計數并產生一個計數器溢出事件,同時,如果TIM1_CR1寄存器的UDIS位是0,將會產生一
個更新事件(UEV)。


1.png



向下計數模式


在向下模式中,計數器從自動裝載的值(TIMx_ARR寄存器的值)開始向下計數到0,然后再從自
動裝載的值重新開始計數,并產生一個計數器向下溢出事件。如果TIM1_CR1寄存器的UDIS位
被清除,還會產生一個更新事件(UEV)。
2.png

中央對齊模式( 向上/ 向下計數)
在中央對齊模式,計數器從0開始計數到自動加載的值(TIMx_ARR寄存器)-1,產生一個計數器
溢出事件,然后向下計數到0并且產生一個計數器下溢事件;然后再從0開始重新計數。

3.png

定時器TIM1例子
說明:16分頻,向上計數,1000次=1毫秒 觸發(fā)一次中斷
TIM1_TimeBaseInit(15,TIM1_COUNTERMODE_UP,1000,0);
TIM1_ARRPreloadConfig(ENABLE);//使能自動重裝
TIM1_ITConfig(TIM1_IT_UPDATE , ENABLE);//數據更新中斷
TIM1_Cmd(ENABLE);//開定時器
INTERRUPT_HANDLER(TIM1_UPD_OVF_TRG_BRK_IRQHandler, 11)
{  
    TIM1_ClearITPendingBit(TIM1_IT_UPDATE);
}


單片機源程序如下:
  1. /***********************************************************************
  2. *   說    明: STM8定時器
  3. *   開發(fā)平臺: 劍齒虎STM8開發(fā)板        
  4. *   作    者: 劉洋 張殿東
  5. *   版    本: V1.0
  6. *
  7. *   IAR開發(fā)環(huán)境    版本 V2.20.1
  8. *   ST庫函數       版本 V2.2.0
  9. ***********************************************************************/

  10. #include "pbdata.h"//引入自定義公共頭文件

  11. void BSP_Configuration(void);//硬件初始化函數聲明

  12. /***********************************************************************
  13. *   函 數 名: main
  14. *   功能說明: c程序入口
  15. *   形    參:無
  16. *   返 回 值: 錯誤代碼(無需處理)
  17. ***********************************************************************/
  18. int main(void)
  19. {
  20.   BSP_Configuration();//硬件驅動初始化函數
  21.   
  22.   while(1)//主程序循環(huán),反復執(zhí)行循環(huán)體里的語句
  23.   {
  24.     //LED_Demo1();//在主程序中調用LED_Demo1()函數
  25.     //LED_Demo2();//在主程序中調用LED_Demo2()函數
  26.   }
  27. }
  28. /***********************************************************************
  29. *   函 數 名: BSP_Configuration
  30. *   功能說明: 初始化硬件設備。只需要調用一次。該函數配置CPU寄存器和外設的寄存器并初始化一些全局變量。
  31. *   形    參:無
  32. *   返 回 值: 無
  33. ***********************************************************************/
  34. void BSP_Configuration(void)
  35. {  
  36.   CLK_HSIPrescalerConfig(CLK_PRESCALER_HSIDIV1);//時鐘速度為內部16M,1分頻,
  37.   LED_Init();//調用LED初始化函數
  38.   Tim1_Init();
  39.   rim();//打開總中斷
  40. }

  41. /*斷言函數:它的作用是在編程的過程中為程序提供參數檢查*/
  42. #ifdef USE_FULL_ASSERT
  43. void assert_failed(u8* file,u32 line)
  44. {
  45.   while(1)
  46.   {
  47.   }
  48. }
  49. #endif
復制代碼

所有資料51hei提供下載:
【眾拳】劍齒虎STM8開發(fā)板的程序下載:
STM8定時器程序.zip (999.64 KB, 下載次數: 206)


評分

參與人數 1黑幣 +6 收起 理由
lwf1 + 6 贊一個!

查看全部評分

回復

使用道具 舉報

ID:259413 發(fā)表于 2017-12-9 14:51 | 顯示全部樓層
定時器使用重點
1.預分頻值
2.計數模式
3.自動重裝載值
4.重復計數器值
5.中斷入口

評分

參與人數 1黑幣 +6 收起 理由
lwf1 + 6 贊一個!

查看全部評分

回復

使用道具 舉報

ID:294886 發(fā)表于 2018-5-8 11:14 | 顯示全部樓層
講解的很詳細,謝謝分享!
回復

使用道具 舉報

ID:328112 發(fā)表于 2018-5-12 11:02 | 顯示全部樓層
感謝,先收藏.
回復

使用道具 舉報

ID:451413 發(fā)表于 2019-1-1 14:59 | 顯示全部樓層
講解的很詳細,謝謝分享!!!!
回復

使用道具 舉報

ID:215834 發(fā)表于 2019-7-4 10:53 | 顯示全部樓層
你好,這個進了中斷以后沒有中斷處理函數錒
回復

使用道具 舉報

ID:33899 發(fā)表于 2019-8-5 14:25 | 顯示全部樓層
最近學習SMT8,學習這個定時器模塊
回復

使用道具 舉報

ID:595719 發(fā)表于 2019-8-5 17:46 | 顯示全部樓層
感謝,先收藏.
回復

使用道具 舉報

ID:609292 發(fā)表于 2019-9-9 00:07 | 顯示全部樓層
不錯不錯
回復

使用道具 舉報

ID:523970 發(fā)表于 2019-9-10 13:36 | 顯示全部樓層
定時器控制PWM輸出非常好用
回復

使用道具 舉報

ID:469271 發(fā)表于 2019-11-18 02:26 | 顯示全部樓層
感謝,直接下載學習
回復

使用道具 舉報

ID:388929 發(fā)表于 2020-2-13 15:41 | 顯示全部樓層
請問下有沒有人買過這個開發(fā)板的???
回復

使用道具 舉報

ID:55115 發(fā)表于 2020-4-15 13:10 | 顯示全部樓層
剛剛有使用STM8 TIM功能
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表