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

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

 

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

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

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

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

 

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

 

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

 

說(shuō)到這里突然想到了在AVR里面,定時(shí)計(jì)數(shù)器都有自己的分頻器,這里也可以先設(shè)置定時(shí)計(jì)數(shù)器的啟動(dòng)條件都滿足,但設(shè)置為無(wú)分頻,此時(shí)相當(dāng)于人沒(méi)有了心臟,定時(shí)計(jì)數(shù)器此時(shí)是不工作的。可以在其他什么條件(如一個(gè)外部中斷里面)滿足時(shí),給定時(shí)計(jì)數(shù)器分頻,此時(shí)定時(shí)計(jì)數(shù)器才工作!

 

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

 

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

 

說(shuō)了這么多,差點(diǎn)忘記了個(gè)人覺(jué)得比較重要的一點(diǎn)。定時(shí)計(jì)數(shù)器1是16位的,它的每一個(gè)16位的寄存器分別配備了一個(gè)8位的TEMP寄存器,用來(lái)臨時(shí)性的保留寄存器的高8位數(shù)據(jù)。MCU從16位寄存器讀數(shù)據(jù)時(shí)時(shí),低8位被送到MCU的同時(shí),高8位被送到TEMP,當(dāng)MCU讀高8位時(shí)取的是TEMP中的數(shù)據(jù)。從MCU寫(xiě)數(shù)據(jù)16位數(shù)據(jù)寄存器時(shí),高8位寫(xiě)到TEMP,寫(xiě)低8位的時(shí)候,低8位與TEMP中的高8位組成16位數(shù)據(jù)寫(xiě)到16位寄存器中。即讀的時(shí)候是先讀低8位,再讀高8位;寫(xiě)的時(shí)候是先寫(xiě)高8位,再寫(xiě)低8位。

 

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

普通模式:

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

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

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

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

CTC模式:

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

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

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

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

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

快速PWM模式:

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

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

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

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

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

 

 

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

在這篇文章中,小編將為大家?guī)?lái)單片機(jī)的相關(guān)報(bào)道。如果你對(duì)本文即將要講解的內(nèi)容存在一定興趣,不妨繼續(xù)往下閱讀哦。

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

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

關(guān)鍵字: 單片機(jī) 定時(shí)器

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

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

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

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

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

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

眾所周知,說(shuō)到延時(shí),很多人都會(huì)想到用軟件件來(lái)實(shí)現(xiàn),比如定時(shí)器之類(lèi)的。今天就來(lái)說(shuō)說(shuō)用硬件來(lái)實(shí)現(xiàn)定時(shí)的方式,雖說(shuō)沒(méi)有那么準(zhǔn),但是有些場(chǎng)合還是用得到的。

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

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

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

SysTick定時(shí)器的工作原理主要基于一個(gè)遞減計(jì)數(shù)器的機(jī)制。以下是對(duì)SysTick定時(shí)器工作原理的詳細(xì)解釋?zhuān)?/p> 關(guān)鍵字: SysTick 定時(shí)器

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

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

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

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