日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 單片機 > 單片機
[導(dǎo)讀] AVR有三個定時計數(shù)器,其中定時計數(shù)器0和定時計數(shù)器2是8位的,定時計數(shù)器1是16位。在學習AVR定時計數(shù)器時,剛開始被一大堆的寄存器搞的有點暈了,后來認真的把Datasheet中的有關(guān)寄存器先看了一遍,再重

 

AVR有三個定時計數(shù)器,其中定時計數(shù)器0和定時計數(shù)器2是8位的,定時計數(shù)器1是16位。

在學習AVR定時計數(shù)器時,剛開始被一大堆的寄存器搞的有點暈了,后來認真的把Datasheet中的有關(guān)寄存器先看了一遍,再重新看定時計數(shù)器的內(nèi)容才理清了。這里做個總結(jié)吧,加深自己的印象。

定時計數(shù)器0和定時計數(shù)器2基本上是相同的。以定時計數(shù)器0來總結(jié)它的幾種工作模式的不同。

 

普通模式:不做介紹,和51里面是一模一樣的。

 

CTC模式:當寄存器TCNT0與OCR0相等時(即匹配),OC0按照COM0[1:0]的值相應(yīng)的改變(置位,清零或取反)。同時TCNT0清零,TCNT0從0x00重新開始計數(shù),當計數(shù)結(jié)果和下一個OCR0寄存器中值相等時又發(fā)生匹配。發(fā)生匹配時,匹配比較標志OCF0置位,即OCF0=1,可申請匹配比較中斷。

 

快速PWM模式:當寄存器TCNT0與OCR0匹配相等時,OC0按照COM0[1:0]的值相應(yīng)的置位或清零。與CTC模式不同的是TCNT0不會清零,而是繼續(xù)計數(shù),直到計數(shù)為0XFF,此時OC0會發(fā)生清零或置位。同時TCNT0從0x00重新開始計數(shù),當計數(shù)結(jié)果和下一個OCR0寄存器中值相等時又發(fā)生匹配。與CTC模式不同發(fā)生匹配時,OCF0不會置位。TCNT0計數(shù)到0XFF時,計數(shù)溢出標志TOV0置位,即TOV0=1,此時可申請溢出中斷。

 

相位可調(diào)PWM模式:此模式下,定時計數(shù)器是雙向計數(shù)器(可加可減),,從0x00一直加到0xff,在下一個計數(shù)脈沖到來時從0xff一直減到0x00。當COM0[1:0]=2時,在加的過程中,若發(fā)生匹配,清零OC0;在減的過程中,若發(fā)生匹配,置位OC0。(當COM0[1:0]=3時,和COM0[1:0]=2的情況相反)。與快速PWM模式不同的是,當TCNT0計數(shù)到0xff時不會影響到OC0的輸出,而是當從0xff減到0x00的過程中與下一個OCR0寄存器的值匹配時,OC0發(fā)生改變(加的過程是清零,那這時應(yīng)該是置位)。當定時計數(shù)器計數(shù)到0x00時,計數(shù)溢出標志TOV0置位,即TOV0=1,此時可申請溢出中斷。

 

以上幾種工作模式同時適合定時計數(shù)器0,1,2。只是定時計數(shù)器1的功能有所增強。下面將會討論。

 

星期二我看一個程序時候,那個程序是工作在快速PWM模式,選擇計數(shù)溢出中斷。當時我還想為什么不選擇匹配中斷而要去等到計數(shù)溢出才中斷豈不是占用時間了,還去問老師了,現(xiàn)在看來是多么的愚蠢!快速PWM模式根本就沒有匹配中斷!

 

定時計數(shù)器0和2,在CTC模式下,頻率和相位可調(diào)。PWM模式下,頻率不可調(diào)。由頻率計數(shù)公司就可以看出。不論是CTC還是PWM都可以通過調(diào)節(jié)OCRn的值去調(diào)節(jié)占空比。(關(guān)于產(chǎn)生PWM波頻率的計算公式將會在后文給出的,關(guān)于定時計數(shù)器的各種寄存器可自己去查看Datasheet)

 

下面是定時計數(shù)器1比0和2的增強功能總結(jié):

1)定時計數(shù)器1比0和2有許多增強功能。在PWM模式時,可產(chǎn)生頻率和相位都可調(diào)的PWM波,這時8位定時計時器0和2所做不到的,因為定時計數(shù)器1具備輸入捕獲功能,即具備輸入捕獲寄存器ICR1,在PWM模式下,ICR1中可存放一個top值,就是這個top值可以改變PWM波的頻率。這點可在頻率計算公司看出。

 

2)定時計數(shù)器1有兩個輸出比較單元和兩個輸出比較寄存器OCR1A和OCR1B,因此可同時產(chǎn)生2路頻率相同,占空比不同的PWM波形。占空比的調(diào)整當然由OCR1A和OCR1B來確定。波形在OC1A和OC1B引腳輸出。

 

3)定時計數(shù)器1具有輸入捕獲單元??梢跃_的記錄外部事件發(fā)生的時間。捕獲外部事件的信號由引腳ICP1輸入。當輸入捕獲信號產(chǎn)生,TCNT1中的計數(shù)值將被寫入輸入捕獲寄存器ICR1(ICR1H,ICR1L)中去。輸入捕獲信號也可由模擬比較器的AC0單元的輸出信號來觸發(fā)。關(guān)于觸發(fā)的方式有兩種,當定時計數(shù)器1的控制寄存器B(即TCCR1B)中的第六位ICESE=0,下降沿觸發(fā);ICESE=1,上升沿觸發(fā)。當滿足觸發(fā)條件時,輸入捕獲單元開始捕獲該事件的發(fā)生。利用該功能可以來對輸入波形頻率的測量。如果我沒有記錯的話在51里面定時計數(shù)器也有這個功能的,可以有GATE門控位的設(shè)置來達到這個目的。51里面,把GATE置位,那么此時定時計數(shù)器的啟動由INTX(X=0或1)引腳和TRX(X=0或1)來決定??上劝裈RX置位,讓定時計數(shù)的啟動條件還欠缺INTX為高電平(即先讓INTX處于低電平),等待INTX變?yōu)楦唠娖?,那么此時定時計數(shù)器啟動了,等到INTX變?yōu)榈碗娖綍r定時計數(shù)器又被關(guān)閉了,那么此時定時計數(shù)器計數(shù)值即為一個PWM脈寬了。

 

說到這里突然想到了在AVR里面,定時計數(shù)器都有自己的分頻器,這里也可以先設(shè)置定時計數(shù)器的啟動條件都滿足,但設(shè)置為無分頻,此時相當于人沒有了心臟,定時計數(shù)器此時是不工作的??梢栽谄渌裁礂l件(如一個外部中斷里面)滿足時,給定時計數(shù)器分頻,此時定時計數(shù)器才工作!

 

剛才說到中斷,與51不同的是,AVR對中斷標志位清“0”的操作時向該位寫“1”。即AVR清除中斷標志位是軟件寫“1”。值得提醒的是在設(shè)置中斷寄存器的時候,最好先清除中斷標志位,然后馬上將相應(yīng)的中斷允許控制位值“1”。

 

這里還需要說明的是上文提及到的定時計數(shù)器波形輸出引腳和輸入捕獲引腳,在使用之前,必須要先設(shè)置好它的方向寄存器是輸出還是輸入。如果是輸入的話還需要考慮是否需要上拉電阻。

 

說了這么多,差點忘記了個人覺得比較重要的一點。定時計數(shù)器1是16位的,它的每一個16位的寄存器分別配備了一個8位的TEMP寄存器,用來臨時性的保留寄存器的高8位數(shù)據(jù)。MCU從16位寄存器讀數(shù)據(jù)時時,低8位被送到MCU的同時,高8位被送到TEMP,當MCU讀高8位時取的是TEMP中的數(shù)據(jù)。從MCU寫數(shù)據(jù)16位數(shù)據(jù)寄存器時,高8位寫到TEMP,寫低8位的時候,低8位與TEMP中的高8位組成16位數(shù)據(jù)寫到16位寄存器中。即讀的時候是先讀低8位,再讀高8位;寫的時候是先寫高8位,再寫低8位。

 

最后給出定時計數(shù)器常用3種工作模式的設(shè)置方法(以定時計數(shù)器1為例):

普通模式:

1,根據(jù)需要設(shè)置時鐘源,即設(shè)置控制寄存器TCCR1B。

2,根據(jù)定時時間和時鐘源確定定時器的初值寫入到數(shù)據(jù)寄存器TCNT1H和TCNT1B。

3,設(shè)置中斷時能位。

4,選擇中斷號,編寫中斷服務(wù)程序。注意需要在中斷服務(wù)程序中重載初值寫入到TCNT1H和TCNT1B(和51一樣的)!

CTC模式:

1,若輸出波形,設(shè)置端口OC1A或OC1B為輸出方式。

2,設(shè)置波形發(fā)生模式,選擇需要的時鐘源,即TCCR1B。

3,設(shè)置輸出模式,即TCCR1A。

4,根據(jù)需要設(shè)置上限值top(前面提到過的)寫入到輸出比較寄存器OCR1A。

5,根據(jù)公式計算頻率。

快速PWM模式:

1,若輸出波形,設(shè)置端口OC1A或OC1B為輸出方式。

2,設(shè)置PWM波形模式,選擇需要的時鐘源,即TCCR1A和TCCR1B。

3,設(shè)置波形的頻率,即OCR1A。

4,設(shè)置波形占空比,即OCCR1B。

6,根據(jù)頻率公式計算頻率。

 

 

本站聲明: 本文章由作者或相關(guān)機構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點,本站亦不保證或承諾內(nèi)容真實性等。需要轉(zhuǎn)載請聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請及時聯(lián)系本站刪除。
換一批
延伸閱讀

在這篇文章中,小編將為大家?guī)韱纹瑱C的相關(guān)報道。如果你對本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

關(guān)鍵字: 單片機 AVR PIC

單片機定時器通過晶振頻率來產(chǎn)生精準的計數(shù)脈沖,從而實現(xiàn)微秒級別的時間控制。 單片機定時器依托于一個穩(wěn)定的計數(shù)器,該計數(shù)器與單片機上的晶振部件相連。晶振經(jīng)過12分頻后,為單片機提供穩(wěn)定且精準的1MHZ脈沖。由于晶振的頻率極...

關(guān)鍵字: 單片機 定時器

編碼器?是一種傳感器,主要用于測量旋轉(zhuǎn)運動的角度、角速度和位移等參數(shù)。常見的編碼器類型包括增量式編碼器和絕對值編碼器,前者通過檢測脈沖的增加或減少來測量旋轉(zhuǎn)方向和距離,后者則直接輸出當前的絕對位置信息?。

關(guān)鍵字: 編碼器? 定時器

一款語音控制的番茄時間定時器,內(nèi)置Seeed Studio XIAO ESP32S3感測和圓形顯示。用免提時間管理保持高效!

關(guān)鍵字: 定時器 ESP32S3 語音控制

【2025年3月20日, 德國慕尼黑訊】全球功率系統(tǒng)和物聯(lián)網(wǎng)領(lǐng)域的半導(dǎo)體領(lǐng)導(dǎo)者英飛凌科技股份公司(FSE代碼:IFX / OTCQX代碼: IFNNY)近日宣布,其旗下ModusToolboxTM開發(fā)平臺中的AIROC?...

關(guān)鍵字: MCU 物聯(lián)網(wǎng) 定時器

眾所周知,說到延時,很多人都會想到用軟件件來實現(xiàn),比如定時器之類的。今天就來說說用硬件來實現(xiàn)定時的方式,雖說沒有那么準,但是有些場合還是用得到的。

關(guān)鍵字: CD4060 定時器

如果定時器的重裝值和分頻設(shè)置不正確,會導(dǎo)致PWM輸出的頻率和占空比不準確,從而產(chǎn)生誤差?1。

關(guān)鍵字: 定時器 分頻

SysTick定時器的工作原理主要基于一個遞減計數(shù)器的機制。以下是對SysTick定時器工作原理的詳細解釋:

關(guān)鍵字: SysTick 定時器

單片機定時器是一種用于計時和定時操作的功能模塊。它通常用于生成延時、計數(shù)事件以及產(chǎn)生精確的時間間隔信號。

關(guān)鍵字: 定時器 時鐘源

在現(xiàn)代嵌入式系統(tǒng)設(shè)計中,51單片機作為一種經(jīng)典的微控制器,憑借其豐富的功能和廣泛的應(yīng)用領(lǐng)域,仍然受到工程師們的青睞。定時器中斷是51單片機中一個非常實用的功能,它可以在特定的時間間隔內(nèi)自動觸發(fā)中斷,執(zhí)行預(yù)設(shè)的操作,從而提...

關(guān)鍵字: 51單片機 定時器
關(guān)閉