人狗畜禽COMPANY LIMITED|全是肉的高H文〈男男〉|全篇肉高H秘书被C办公室四爱|全黄H全肉共妻|全黄H全肉短篇禁乱NP慕浅浅|全黄H全肉短篇N男男

技術(shù)熱線: 4007-888-234
設(shè)計(jì)開發(fā)

專注差異化嵌入式產(chǎn)品解決方案 給智能產(chǎn)品定制注入靈魂給予生命

開發(fā)工具

提供開發(fā)工具、應(yīng)用測試 完善的開發(fā)代碼案例庫分享

技術(shù)支持

從全面的產(chǎn)品導(dǎo)入到強(qiáng)大技術(shù)支援服務(wù) 全程貼心伴隨服務(wù),創(chuàng)造無限潛能!

新品推廣

提供新的芯片及解決方案,提升客戶產(chǎn)品競爭力

新聞中心

提供最新的單片機(jī)資訊,行業(yè)消息以及公司新聞動(dòng)態(tài)

單片機(jī)的重要外設(shè):定時(shí)器

更新時(shí)間: 2021-08-26
閱讀量:3890

單片機(jī)(MCU)應(yīng)該知道當(dāng)前的日期和時(shí)間。他們還經(jīng)常需要測量預(yù)定的時(shí)間段,并跟蹤經(jīng)過的時(shí)間。例如,一個(gè)典型的應(yīng)用程序可能會(huì)反復(fù)詢問MCU自應(yīng)用程序本身啟動(dòng)以來已經(jīng)過去了多長時(shí)間。另一個(gè)應(yīng)用程序可以指示MCU每秒發(fā)出128次特定信號。程序還會(huì)經(jīng)常告訴MCU在采取一些進(jìn)一步的行動(dòng)或轉(zhuǎn)換到其他一些進(jìn)程之前等待一些指定的時(shí)間。在這些情況中的每一種情況下,以及在許多其他情況下,MCU必須使用一個(gè)或多個(gè)定時(shí)器。這些定時(shí)器通常作為MCU本身的外設(shè)功能實(shí)現(xiàn)。(見圖1)

fig1-types-of-processing-en.jpg

當(dāng)然,軟件確實(shí)可以自行控制等待時(shí)間,不依賴硬件定時(shí)器的服務(wù),只需保持CPU被非生產(chǎn)性步驟占用即可。這種方法如圖2所示。如果我們假設(shè)CPU需要1μs(微秒;百萬分之一秒)來執(zhí)行一次循環(huán)迭代,我們可以通過將初始值設(shè)置為有效地實(shí)現(xiàn)1秒的等待100萬次,然后循環(huán)100萬次。這種方法的一個(gè)主要問題是它壟斷了CPU,CPU忙于數(shù)計(jì)算,以至于無法做任何其他事情。另一個(gè)問題是不能自由設(shè)置計(jì)數(shù)自定義增量,而定時(shí)器支持多種增量,0.1秒,1/1024秒等等。

fig2-software-timer-en.jpg

這種方法的另一個(gè)大問題是它依賴于CPU時(shí)鐘速度。如果程序稍后在具有不同時(shí)鐘速度的不同CPU上運(yùn)行,那么等待時(shí)間也會(huì)改變。如果在100MHz PU上運(yùn)行時(shí)等待時(shí)間需要1秒,那么在50MHz PU上運(yùn)行時(shí)將需要2秒。如果希望保持相同的速度,則需要為使用的每臺(tái)機(jī)器修改循環(huán)代碼。這將花費(fèi)大量時(shí)間,并且也容易出現(xiàn)許多錯(cuò)誤。因此,在可能的情況下,最好使用硬件來跟蹤時(shí)間。

關(guān)于中斷的簡單介紹

下面簡單介紹一下中斷的概念,它是硬件定時(shí)器操作的一個(gè)基本特征。中斷——顧名思義,中斷當(dāng)前處理以請求立即處理其他一些處理。通過使用中斷,即使CPU忙于做其他事情,也可以引起CPU的注意。

這是廚房的一個(gè)類比。你正在煮一些面條,你想在三分鐘內(nèi)把它們從爐子上拿下來。一種方法是站在一旁盯著時(shí)鐘上的秒針三分鐘;這是軟件在等待循環(huán)重復(fù)一百萬次時(shí)所采用的方法。另一種方法是設(shè)置廚房計(jì)時(shí)器,然后做其他事情,直到鬧鐘“打斷”并重新引起的注意。使用這種方法,可以自由地處理其他任務(wù),直到出現(xiàn)中斷。

當(dāng)達(dá)到預(yù)定時(shí)間(經(jīng)過時(shí)間;一天中的時(shí)間;完成時(shí)間等)時(shí),MCU中的各種外設(shè)定時(shí)器通過發(fā)送中斷來提醒CPU。許多其他外設(shè)也使用此類中斷:例如,通知CPU某些監(jiān)視狀態(tài)已更改,或者某些進(jìn)程已啟動(dòng)或結(jié)束。CPU可以一直忙于其他任務(wù),直到每個(gè)中斷出現(xiàn),因此整體效率仍然很高。

定時(shí)器和看門狗

MCU最常使用的外設(shè)定時(shí)器是對特定時(shí)間段進(jìn)行計(jì)數(shù)的定時(shí)器,以及發(fā)出周期性中斷的定時(shí)器。RX63N還包括許多其他定時(shí)器,其中一個(gè)用于生成用于伺服電機(jī)控制的PWM(脈寬調(diào)制)信號,另一個(gè)用于測量輸入信號之間的時(shí)間,以及一個(gè)RTC(實(shí)時(shí)時(shí)鐘)跟蹤當(dāng)前時(shí)間。

嵌入式系統(tǒng)中常用的一種更有趣的定時(shí)器是“看門狗”(WDT:看門狗定時(shí)器),也稱為“cop”(計(jì)算機(jī)正常運(yùn)行)定時(shí)器。顧名思義,這個(gè)計(jì)時(shí)器的作用是檢測和響應(yīng)計(jì)算機(jī)故障,以便系統(tǒng)可以從失控的程序中恢復(fù),否則會(huì)導(dǎo)致系統(tǒng)凍結(jié)。當(dāng)系統(tǒng)啟動(dòng)程序時(shí),它也會(huì)將預(yù)定的時(shí)間計(jì)數(shù)寫入WDT。然后WDT會(huì)定期自動(dòng)遞減計(jì)數(shù)。如果程序正常結(jié)束,它將在關(guān)閉前清除WDT計(jì)數(shù)值。但是,如果程序掛起,WDT計(jì)數(shù)將繼續(xù)遞減。當(dāng)該值低于0(“下溢”條件)時(shí),WDT將產(chǎn)生一個(gè)中斷,警告CPU發(fā)生了錯(cuò)誤。

确山县| 成武县| 靖江市| 罗甸县| 郑州市| 聂荣县| 三台县| 含山县| 临夏县| 和林格尔县| 赤壁市| 平湖市| 江达县| 蒙城县| 西丰县| 绵竹市| 马公市| 平邑县| 宜宾市| 花莲县| 宝应县| 巴南区| 聂拉木县| 突泉县| 安阳县| 宜君县| 林周县| 西乌| 吴忠市| 古丈县| 旬阳县| 南郑县| 陆河县| 剑川县| 三穗县| 勐海县| 特克斯县| 庆阳市| 措美县| 云霄县| 乌拉特后旗|