最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

《二》canfestival系列教程之軟件定時(shí)器分析(2)

2021-09-10 13:11 作者:GXTon_阿通  | 我要投稿


以stm32單片機(jī)為例,精講一下代碼:

上文說到,軟件定時(shí)器對(duì)canfestival很重要.canfestival中大部分時(shí)間都是靠軟件定時(shí)器觸發(fā)的.

這里的所有軟件定時(shí)器,都是依靠一個(gè)硬件定時(shí)器模擬出來的.

就以stm32單片機(jī)的timer14定時(shí)器為例,

首先要配置timer14定時(shí)器,配置成向上計(jì)數(shù),每1us計(jì)數(shù)一次,并且開啟中斷.

對(duì)于硬件定時(shí)器的配置,最主要的是弄明白計(jì)數(shù)1次,消耗多少時(shí)間.也就是分配參數(shù).

上面的例子是每1us,計(jì)數(shù)一次,它就是canfestival的最小時(shí)間單位了.

定時(shí)器的中斷優(yōu)先級(jí)nvic配置

中斷發(fā)生后的處理函數(shù):

在里面會(huì)調(diào)用TimeDispatch( )這里是canfestival的接口函數(shù)

TimeDispatch(?)放入到中斷函數(shù)里面后,它就會(huì)不斷改變timer14定時(shí)器的周期,來模擬出多個(gè)軟件定時(shí).也就是每個(gè)軟件定時(shí)器溢出,都會(huì)觸發(fā)timer14定時(shí)器的中斷.

(可以把圖片保存下來看,或者全屏看:-)

TimeDispatch(?)函數(shù)中,調(diào)用的兩個(gè)函數(shù)是需要我們根據(jù)開發(fā)環(huán)境編寫的.

這里用的是stm32的開發(fā)環(huán)境.setTimer( )getElapsedTime()

canfestival中有兩個(gè)時(shí)間單位一個(gè)是us,另一個(gè)是ms.

在timerscfg.h中需要配置三個(gè)參數(shù):

TIMEVAL_MAX? 是硬件定時(shí)器最大的周期,因?yàn)槲覀僼imer14設(shè)置的是5000,所以這個(gè)參數(shù)不要超過5000.

MS_TO_TIMEVAL?是ms的計(jì)數(shù).timer14中配置的是每1us計(jì)數(shù)一次.所以這個(gè)ms要配置成1000.系數(shù)要配置成1000.

US_TO_TIMEVAL?是us,硬件定時(shí)器timer14本身就是1us計(jì)數(shù)一次,所以這里系數(shù)是1.

TimeDispatch(?)會(huì)遍歷timers中的所有軟件定時(shí)器,這里面timers實(shí)質(zhì)上是一個(gè)數(shù)組,這個(gè)數(shù)組的上限個(gè)數(shù)為MAX_NB_TIMER.


《二》canfestival系列教程之軟件定時(shí)器分析(2)的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國(guó)家法律
柞水县| 嘉义市| 普宁市| 天气| 林州市| 朝阳市| 民权县| 台州市| 兴山县| 玉田县| 清徐县| 常熟市| 梅河口市| 安多县| 正宁县| 甘肃省| 黔江区| 凤冈县| 威远县| 会泽县| 丁青县| 丽水市| 德惠市| 饶阳县| 襄垣县| 乾安县| 深水埗区| 吴旗县| 大洼县| 信宜市| 雅安市| 宁陵县| 神农架林区| 从化市| 定日县| 石首市| 灵台县| 沁阳市| 郑州市| 上饶市| 桃园市|