<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > AVR單片機(jī)(學(xué)習(xí)ing)-ATMEGA16的定時(shí)/計(jì)數(shù)器

          AVR單片機(jī)(學(xué)習(xí)ing)-ATMEGA16的定時(shí)/計(jì)數(shù)器

          作者: 時(shí)間:2016-11-27 來(lái)源:網(wǎng)絡(luò) 收藏
          2)T/C0計(jì)數(shù)寄存器—TCNT0



          通過(guò)T/C 寄存器可以直接對(duì)計(jì)數(shù)器的8 位數(shù)據(jù)進(jìn)行讀寫(xiě)訪問(wèn)。對(duì)TCNT0 寄存器的寫(xiě)訪問(wèn)
          將在下一個(gè)時(shí)鐘阻止比較匹配。在計(jì)數(shù)器運(yùn)行的過(guò)程中修改TCNT0 的數(shù)值有可能丟失一
          次TCNT0 和OCR0 的比較匹配。
          3)輸出比較寄存器—OCR0


          輸出比較寄存器包含一個(gè)8 位的數(shù)據(jù),不間斷地與計(jì)數(shù)器數(shù)值TCNT0 進(jìn)行比較。匹配事
          件可以用來(lái)產(chǎn)生輸出比較中斷,或者用來(lái)在OC0 引腳上產(chǎn)生波形。
          4)中斷屏蔽寄存器—TIMSK


          • Bit 1 – OCIE0: T/C0 輸出比較匹配中斷使能
          當(dāng)OCIE0 和狀態(tài)寄存器的全局中斷使能位I 都為”1” 時(shí),T/C0 的輸出比較匹配中斷使能。
          當(dāng)T/C0 的比較匹配發(fā)生,即TIFR 中的OCF0 置位時(shí),中斷服務(wù)程序得以執(zhí)行。
          • Bit 0 – TOIE0: T/C0 溢出中斷使能
          當(dāng)TOIE0 和狀態(tài)寄存器的全局中斷使能位I 都為”1” 時(shí),T/C0 的溢出中斷使能。當(dāng)T/C0
          發(fā)生溢出,即TIFR 中的TOV0 位置位時(shí),中斷服務(wù)程序得以執(zhí)行。
          5)定時(shí)/計(jì)數(shù)器中斷標(biāo)志寄存器—TIFR


          • Bit 1 – OCF0: 輸出比較標(biāo)志0
          當(dāng)T/C0 與OCR0( 輸出比較寄存器0) 的值匹配時(shí),OCF0 置位。此位在中斷服務(wù)程序里
          硬件清零,也可以對(duì)其寫(xiě)1 來(lái)清零。當(dāng)SREG 中的位I、OCIE0(T/C0 比較匹配中斷使能
          ) 和OCF0 都置位時(shí),中斷服務(wù)程序得到執(zhí)行。
          • Bit 0 – TOV0: T/C0 溢出標(biāo)志
          當(dāng)T/C0 溢出時(shí), TOV0 置位。執(zhí)行相應(yīng)的中斷服務(wù)程序時(shí)此位硬件清零。此外, TOV0
          也可以通過(guò)寫(xiě)1 來(lái)清零。當(dāng)SREG 中的位I、TOIE0(T/C0 溢出中斷使能) 和TOV0 都置
          位時(shí),中斷服務(wù)程序得到執(zhí)行。在相位修正PWM 模式中,當(dāng)T/C0 在0x00 改變記數(shù)方
          向時(shí), TOV0 置位(這里我還真的不會(huì)~~)。
          下面的是個(gè)補(bǔ)充:具體我也不知道~因?yàn)槲乙矝](méi)有用過(guò),回頭用了再來(lái)更新,哈。


          4、16位定時(shí)/計(jì)數(shù)器T/C1
          16位的T/C 可以實(shí)現(xiàn)精確的程序定時(shí)( 事件管理)、波形產(chǎn)生和信號(hào)測(cè)量。其主要特點(diǎn)如下
          • 真正的16 位設(shè)計(jì)( 即允許16 位的PWM)
          • 2 個(gè)獨(dú)立的輸出比較單元
          • 雙緩沖的輸出比較寄存器
          • 一個(gè)輸入捕捉單元
          • 輸入捕捉噪聲抑制器
          • 比較匹配發(fā)生時(shí)清除寄存器( 自動(dòng)重載)
          • 無(wú)干擾脈沖,相位正確的PWM
          • 可變的PWM 周期
          • 頻率發(fā)生器
          • 外部事件計(jì)數(shù)器
          • 4 個(gè)獨(dú)立的中斷源(TOV1、 OCF1A、OCF1B 與ICF1)
          先看看圖吧:

          寄存器:
          定時(shí)器/ 計(jì)數(shù)器TCNT1、輸出比較寄存器OCR1A/B 與輸入捕捉寄存器ICR1 均為16 位
          寄存器。訪問(wèn)16 位寄存器必須通過(guò)特殊的步驟,詳見(jiàn)P85“ 訪問(wèn)16 位寄存器” 。T/C 控
          制寄存器TCCR1A/B 為8 位寄存器,沒(méi)有CPU 訪問(wèn)的限制。中斷請(qǐng)求( 圖中簡(jiǎn)寫(xiě)為
          Int.Req.) 信號(hào)在中斷標(biāo)志寄存器TIFR1 都有反映。所有中斷都可以由中斷屏蔽寄存器
          TIMSK1 單獨(dú)控制。圖中未給出TIFR1 與TIMSK1。
          T/C可由內(nèi)部時(shí)鐘通過(guò)預(yù)分頻器或通過(guò)由T1引腳輸入的外部時(shí)鐘驅(qū)動(dòng)。引發(fā)T/C數(shù)值增加(
          或減少) 的時(shí)鐘源及其有效沿由時(shí)鐘選擇邏輯模塊控制。沒(méi)有選擇時(shí)鐘源時(shí)T/C 處于停止
          狀態(tài)。時(shí)鐘選擇邏輯模塊的輸出稱(chēng)為clkT1。
          雙緩沖輸出比較寄存器OCR1A/B 一直與T/C 的值做比較。波形發(fā)生器用比較結(jié)果產(chǎn)生
          PWM或在輸出比較引腳OC1A/B輸出可變頻率的信號(hào)。參見(jiàn)P91 “輸出比較單元” 。比較匹
          配結(jié)果還可置位比較匹配標(biāo)志OCF1A/B,用來(lái)產(chǎn)生輸出比較中斷請(qǐng)求。
          當(dāng)輸入捕捉引腳ICP1 或模擬比較器輸入引腳( 見(jiàn)P189 “ 模擬比較器” ) 有輸入捕捉事件
          產(chǎn)生( 邊沿觸發(fā)) 時(shí),當(dāng)時(shí)的T/C 值被傳輸?shù)捷斎氩蹲郊拇嫫鞅4嫫饋?lái)。輸入捕捉單元包
          括一個(gè)數(shù)字濾波單元( 噪聲消除器) 以降低噪聲干擾。
          在某些操作模式下, TOP 值或T/C 的最大值可由OCR1A 寄存器、ICR1 寄存器,或一
          些固定數(shù)據(jù)來(lái)定義。在PWM 模式下用OCR1A 作為T(mén)OP 值時(shí), OCR1A 寄存器不能用
          作PWM 輸出。但此時(shí)OCR1A 是雙向緩沖的, TOP 值可在運(yùn)行過(guò)程中得到改變。當(dāng)需
          要一個(gè)固定的TOP 值時(shí)可以使用ICR1 寄存器,從而釋放OCR1A 來(lái)用作PWM 的輸出。
          不介紹了,太多了,要是想詳細(xì)了解,自己看datasheet吧,要是要的我給你~~)

          5、16位定時(shí)/計(jì)數(shù)器1的寄存器
          1)T/C1 控制寄存器A - TCCR1A
          T/C1控制寄存器A用來(lái)設(shè)置通道A和B的輸出模式,以及波形的發(fā)生模式,其定義:


          • Bit 7:6 – COM1A1:0: 通道A 的比較輸出模式
          • Bit 5:4 – COM1B1:0: 通道B 的比較輸出模式
          COM1A1:0與COM1B1:0分別控制OC1A 與OC1B狀態(tài)。如果COM1A1:0(COM1B1:0)的
          一位或兩位被寫(xiě)入"1”,OC1A(OC1B) 輸出功能將取代I/O 端口功能。此時(shí)OC1A(OC1B)
          相應(yīng)的輸出引腳數(shù)據(jù)方向控制必須置位以使能輸出驅(qū)動(dòng)器。
          OC1A(OC1B) 與物理引腳相連時(shí),COM1x1:0 的功能由WGM13:0 的設(shè)置決定。Table 44
          給出當(dāng)WGM13:0 設(shè)置為普通模式與CTC 模式( 非PWM) 時(shí)COM1x1:0 的功能定義。






          • Bit 3 – FOC1A: 通道A 強(qiáng)制輸出比較
          • Bit 2 – FOC1B: 通道B 強(qiáng)制輸出比較
          FOC1A/FOC1B只有當(dāng)WGM13:0指定為非PWM模式時(shí)被激活。為與未來(lái)器件兼容,工作
          在PWM 模式下對(duì)TCCR1A 寫(xiě)入時(shí),這兩位必須清零。當(dāng)FOC1A/FOC1B 位置1 ,立即
          強(qiáng)制波形產(chǎn)生單元進(jìn)行比較匹配。COM1x1:0 的設(shè)置改變 OC1A/OC1B 的輸出。注意
          FOC1A/FOC1B 位作為選通信號(hào)。COM1x1:0 位的值決定強(qiáng)制比較的效果。
          在CTC 模式下使用OCR1A 作為T(mén)OP 值, FOC1A/FOC1B 選通即不會(huì)產(chǎn)生中斷也不好
          清除定時(shí)器。
          FOC1A/FOC1B 位總是讀為0。
          • Bit 1:0 – WGM11:0: 波形發(fā)生模式
          這兩位與位于TCCR1B 寄存器的WGM13:2 相結(jié)合,用于控制計(jì)數(shù)器的計(jì)數(shù)序列——計(jì)
          數(shù)器計(jì)數(shù)的上限值和確定波形發(fā)生器的工作模式( 見(jiàn)Table 47)。T/C 支持的工作模式有:


          (這些東西還是要理解性的記憶的~~~~
          2)T/C1 控制寄存器B - TCCR1B


          • Bit 7 – ICNC1: 入捕捉噪聲抑制器
          置位ICNC1 將使能輸入捕捉噪聲抑制功能。此時(shí)外部引腳ICP1 的輸入被濾波。其作用
          是從ICP1 引腳連續(xù)進(jìn)行4 次采樣。如果4 個(gè)采樣值都相等,那么信號(hào)送入邊沿檢測(cè)器。
          因此使能該功能使得輸入捕捉被延遲了4 個(gè)時(shí)鐘周期。
          • Bit 6 – ICES1: 輸入捕捉觸發(fā)沿選擇
          該位選擇使用ICP1 上的哪個(gè)邊沿觸發(fā)捕獲事件。ICES 為"0” 選擇的是下降沿觸發(fā)輸入
          捕捉; ICES1 為"1” 選擇的是邏輯電平的上升沿觸發(fā)輸入捕捉。
          按照ICES1 的設(shè)置捕獲到一個(gè)事件后,計(jì)數(shù)器的數(shù)值被復(fù)制到ICR1 寄存器。捕獲事件還
          會(huì)置為ICF1。如果此時(shí)中斷使能,輸入捕捉事件即被觸發(fā)。
          當(dāng)ICR1 用作TOP 值( 見(jiàn)TCCR1A 與TCCR1B 寄存器中WGM13:0 位的描述) 時(shí),ICP1
          與輸入捕捉功能脫開(kāi),從而輸入捕捉功能被禁用。
          • Bit 5 – 保留位
          該位保留。為保證與將來(lái)器件的兼容性,寫(xiě)TCCR1B 時(shí),該位必須寫(xiě)入"0”。
          • Bit 4:3 – WGM13:2: 波形發(fā)生模式
          見(jiàn)TCCR1A 寄存器中的描述。
          • Bit 2:0 – CS12:0: 時(shí)鐘選擇
          這3 位用于選擇T/C 的時(shí)鐘源,見(jiàn)Figure 49 與 Figure 50。


          3)T/C1計(jì)數(shù)寄存器 - TCNT1H 與TCNT1L




          TCNT1H與TCNT1L組成了T/C1的數(shù)據(jù)寄存器TCNT1。通過(guò)它們可以直接對(duì)定時(shí)器/計(jì)數(shù)
          器單元的16 位計(jì)數(shù)器進(jìn)行讀寫(xiě)訪問(wèn)。為保證CPU 對(duì)高字節(jié)與低字節(jié)的同時(shí)讀寫(xiě),必須
          使用一個(gè)8 位臨時(shí)高字節(jié)寄存器TEMP。TEMP 是所有的16 位寄存器共用的。
          在計(jì)數(shù)器運(yùn)行期間修改TCNT1的內(nèi)容有可能丟失一次TCNT1與OCR1x的比較匹配操作。
          寫(xiě)TCNT1 寄存器將在下一個(gè)定時(shí)器周期阻塞比較匹配。
          4)輸出比較寄存器


          該寄存器中的16 位數(shù)據(jù)與TCNT1 寄存器中的計(jì)數(shù)值進(jìn)行連續(xù)的比較,一旦數(shù)據(jù)匹配,將
          產(chǎn)生一個(gè)輸出比較中斷,或改變OC1x 的輸出邏輯電平。
          輸出比較寄存器長(zhǎng)度為16 位。為保證CPU 對(duì)高字節(jié)與低字節(jié)的同時(shí)讀寫(xiě),必須使用一
          個(gè)8 位臨時(shí)高字節(jié)寄存器TEMP。TEMP 是所有的16 位寄存器共用的,詳見(jiàn)P85 “ 訪問(wèn)
          16 位寄存器” 。
          5)輸入捕捉寄存器1 - ICR1H 與ICR1L


          當(dāng)外部引腳ICP1(或T/C1的模擬比較器)有輸入捕捉觸發(fā)信號(hào)產(chǎn)生時(shí),計(jì)數(shù)器TCNT1中的
          值寫(xiě)入ICR1 中。ICR1 的設(shè)定值可作為計(jì)數(shù)器的TOP 值。
          輸入捕捉寄存器長(zhǎng)度為16 位。為保證CPU 對(duì)高字節(jié)與低字節(jié)的同時(shí)讀寫(xiě),必須使用一
          個(gè)8 位臨時(shí)高字節(jié)寄存器TEMP。TEMP 是所有的16 位寄存器共用的。在PWM方式下,ICR1的
          設(shè)定值將作為計(jì)數(shù)器計(jì)數(shù)上限值。

          評(píng)論


          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();