国产精品天干天干,亚洲毛片在线,日韩gay小鲜肉啪啪18禁,女同Gay自慰喷水

歡迎光臨散文網(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ó)家法律
武邑县| 沙湾县| 凤城市| 龙山县| 尼勒克县| 西乌| 曲松县| 富宁县| 登封市| 威信县| 二连浩特市| 卢氏县| 大同县| 吉木乃县| 镇原县| 桦南县| 诸暨市| 鲜城| 孙吴县| 贵阳市| 吉木萨尔县| 天峨县| 日照市| 平舆县| 张家川| 延庆县| 荆州市| 景宁| 揭阳市| 威信县| 永德县| 洛阳市| 抚州市| 顺义区| 湟中县| 小金县| 明光市| 昂仁县| 汪清县| 巴中市| 星座|