stm32系統滴答定時器計算方法及應用
阿新 • • 發佈:2018-12-13
系統滴答定時器計算方法,在這記錄一下,防止時間久了遺忘
公式: 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級延時設定 選擇時鐘源、清空當前計數器的值、設定過載值、使能計數器、等待定時時間到