1. 程式人生 > >stm32系統滴答定時器計算方法及應用

stm32系統滴答定時器計算方法及應用

系統滴答定時器計算方法,在這記錄一下,防止時間久了遺忘

公式: 1Hz    = 1s        要計1個數用時1s 10Hz   = 0.1s        要計10個數用時1s 100Hz  = 0.01s        要計100個數用時1s 21MHz  ---> 1s        要計21M個數用時1s    21000 000個數                     100ms --->          2100 000個數 如: 1s    = 21 000 000 100ms = 21 000 00 換算 168MHz = 168000KHz = 168000000Hz

外部時鐘 <=> 168M/8=21M ①: 存放24位:二進位制(1111 1111 1111 1111 1111 1111) 計數最多為:16777215次 16777215 / 168 = 0.099864375s=99.864375ms約等於100ms

16777215 四捨五入 16800000 168MHz    =       168000000

16800000/168000000 = 0.1s = 100ms   這個計時太短(過快)無法滿足所需

如果是使用了21MHz來計算的話剛好是168的8倍

所以可以以800ms來計算

②: 同樣計算公式: 16777215 / 21 = 798.9ms            這個時間基本滿足所有計時時間

配置流程: ①:系統滴答ms級延時設定     選擇時鐘源、清空當前計數器的值、設定過載值、使能計數器、等待定時時間到

②:系統滴答us級延時設定     選擇時鐘源、清空當前計數器的值、設定過載值、使能計數器、等待定時時間到