《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > AVR定時器的工作類型模式介紹
AVR定時器的工作類型模式介紹
摘要: M16的T116位定時器一共有15種工作模式,其他2個8位定時器(T0/T2)相對簡單,除了T2有異步工作模式用于RTC應用外(可以利用溢出中斷和比較匹配中斷作定時功能)。
關鍵詞: avr 定時器
Abstract:
Key words :

  M16的T1 16位定時器" title="定時器">定時器一共有15種工作模式,其他2個8位定時器(T0/T2)相對簡單,除了T2有異步工作模式用于RTC應用外(可以利用溢出中斷和比較匹配中斷作定時功能)。

  分5種工作類型

  1 普通模式 WGM1=0

  跟51的普通模式差不多,有TOV1溢出中斷,發生于TOP時

  1 采用內部計數時鐘 用于 ICP捕捉輸入場合---測量脈寬/紅外解碼

  (捕捉輸入功能可以工作在多種模式下,而不單單只是普通模式)

  2 采用外部計數脈沖輸入 用于 計數,測頻

  其他的應用,采用其他模式更為方便,不需要像51般費神

 

  2 CTC模式 [比較匹配時清零定時器模式] WGM1=4,12

 

  跟51的自動重載模式差不多

  1 用于輸出50%占空比的方波信號

  2 用于產生準確的連續定時信號

  WGM1=4時, 最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷

  WGM1=12時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷

  注:WGM=15時,也能實現從OC1A輸出方波,而且具備雙緩沖功能

  計算公式: fOCn=fclk_IO/(2*N*(1+TOP))

  變量N 代表預分頻因子(1、8、32,64、256,1024)。

 

  3 快速PWM模式 WGM1=5,6,7,14,15

 

  單斜波計數,用于輸出高頻率的PWM信號(比雙斜波的高一倍頻率)

  都有TOV1溢出中斷,發生于TOP時

  比較匹配后可以產生OCF1x比較匹配中斷。

  WGM1=5時, 最大值為0x00FF, 8位分辨率

  WGM1=6時, 最大值為0x01FF, 9位分辨率

  WGM1=7時, 最大值為0x03FF,10位分辨率

  WGM1=14時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷 (單緩沖)

  WGM1=15時,最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷(雙緩沖,但OC1A將沒有PWM能力,最多只能輸出方波)

  改變TOP值時必須保證新的TOP值不小于所有比較寄存器的數值

  注意,即使OCR1A/B設為0x0000,也會輸出一個定時器時鐘周期的窄脈沖,而不是一直為低電平

  計算公式:fPWM=fclk_IO/(N*(1+TOP))

 

  4 相位修正PWM模式 WGM1=1,2,3,10,11

 

  雙斜波計數,用于輸出高精度的,相位準確的,對稱的PWM信號

  都有TOV1溢出中斷,但發生在BOOTOM時

  比較匹配后可以產生OCF1x比較匹配中斷。

  WGM1=1時, 最大值為0x00FF, 8位分辨率

  WGM1=2時, 最大值為0x01FF, 9位分辨率

  WGM1=3時, 最大值為0x03FF,10位分辨率

  WGM1=10時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷 (單緩沖)

  WGM1=11時,最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷(雙緩沖,但OC1A將沒有PWM能力,最多只能輸出方波)

  改變TOP值時必須保證新的TOP值不小于所有比較寄存器的數值

  可以輸出0%~100%占空比的PWM信號

  若要在T/C 運行時改變TOP 值,最好用相位與頻率修正模式代替相位修正模式。若TOP保持不變,那么這兩種工作模式實際沒有區別

  計算公式:fPWM=fclk_IO/(2*N*TOP)

 

  5 相位與頻率修正PWM模式 WGM1=8,9

 

  雙斜波計數,用于輸出高精度的、相位與頻率都準確的PWM波形

  都有TOV1溢出中斷,但發生在BOOTOM時

  比較匹配后可以產生OCF1x比較匹配中斷。

  WGM1=8時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷 (單緩沖)

  WGM1=9時,最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷(雙緩沖,但OC1A將沒有PWM能力,最多只能輸出方波)

  相頻修正修正PWM 模式與相位修正PWM 模式的主要區別在于OCR1x 寄存器的更新時間

  改變TOP值時必須保證新的TOP值不小于所有比較寄存器的數值

  可以輸出0%~100%占空比的PWM信號

  使用固定TOP 值時最好使用ICR1 寄存器定義TOP。這樣OCR1A 就可以用于在OC1A輸出PWM 波。

  但是,如果PWM 基頻不斷變化(通過改變TOP值), OCR1A的雙緩沖特性使其更適合于這個應用。

  計算公式:fPWM=fclk_IO/(2*N*TOP)

 

  M16的T1 16位定時器一共有15種工作模式,其他2個8位定時器(T0/T2)相對簡單,除了T2有異步工作模式用于RTC應用外(可以利用溢出中斷和比較匹配中斷作定時功能)。

 

  分5種工作類型

 

  1 普通模式 WGM1=0

  跟51的普通模式差不多,有TOV1溢出中斷,發生于TOP時

  1 采用內部計數時鐘 用于 ICP捕捉輸入場合---測量脈寬/紅外解碼

 ?。ú蹲捷斎牍δ芸梢怨ぷ髟诙喾N模式下,而不單單只是普通模式)

  2 采用外部計數脈沖輸入 用于 計數,測頻

  其他的應用,采用其他模式更為方便,不需要像51般費神

 

  2 CTC模式 [比較匹配時清零定時器模式] WGM1=4,12

 

  跟51的自動重載模式差不多

  1 用于輸出50%占空比的方波信號

  2 用于產生準確的連續定時信號

  WGM1=4時, 最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷

  WGM1=12時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷

  注:WGM=15時,也能實現從OC1A輸出方波,而且具備雙緩沖功能

  計算公式: fOCn=fclk_IO/(2*N*(1+TOP))

  變量N 代表預分頻因子(1、8、32,64、256,1024)。

 

  3 快速PWM模式 WGM1=5,6,7,14,15

 

  單斜波計數,用于輸出高頻率的PWM信號(比雙斜波的高一倍頻率)

  都有TOV1溢出中斷,發生于TOP時

  比較匹配后可以產生OCF1x比較匹配中斷。

  WGM1=5時, 最大值為0x00FF, 8位分辨率

  WGM1=6時, 最大值為0x01FF, 9位分辨率

  WGM1=7時, 最大值為0x03FF,10位分辨率

  WGM1=14時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷 (單緩沖)

  WGM1=15時,最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷(雙緩沖,但OC1A將沒有PWM能力,最多只能輸出方波)

  改變TOP值時必須保證新的TOP值不小于所有比較寄存器的數值

  注意,即使OCR1A/B設為0x0000,也會輸出一個定時器時鐘周期的窄脈沖,而不是一直為低電平

  計算公式:fPWM=fclk_IO/(N*(1+TOP))

 

  4 相位修正PWM模式 WGM1=1,2,3,10,11

 

  雙斜波計數,用于輸出高精度的,相位準確的,對稱的PWM信號

  都有TOV1溢出中斷,但發生在BOOTOM時

  比較匹配后可以產生OCF1x比較匹配中斷。

  WGM1=1時, 最大值為0x00FF, 8位分辨率

  WGM1=2時, 最大值為0x01FF, 9位分辨率

  WGM1=3時, 最大值為0x03FF,10位分辨率

  WGM1=10時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷 (單緩沖)

  WGM1=11時,最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷(雙緩沖,但OC1A將沒有PWM能力,最多只能輸出方波)

  改變TOP值時必須保證新的TOP值不小于所有比較寄存器的數值

  可以輸出0%~100%占空比的PWM信號

  若要在T/C 運行時改變TOP 值,最好用相位與頻率修正模式代替相位修正模式。若TOP保持不變,那么這兩種工作模式實際沒有區別

  計算公式:fPWM=fclk_IO/(2*N*TOP)

 

  5 相位與頻率修正PWM模式 WGM1=8,9

 

  雙斜波計數,用于輸出高精度的、相位與頻率都準確的PWM波形

  都有TOV1溢出中斷,但發生在BOOTOM時

  比較匹配后可以產生OCF1x比較匹配中斷。

  WGM1=8時,最大值由ICF1設定, TOP時產生ICF1輸入捕捉中斷 (單緩沖)

  WGM1=9時,最大值由OCR1A設定,TOP時產生OCF1A比較匹配中斷(雙緩沖,但OC1A將沒有PWM能力,最多只能輸出方波)

  相頻修正修正PWM 模式與相位修正PWM 模式的主要區別在于OCR1x 寄存器的更新時間

  改變TOP值時必須保證新的TOP值不小于所有比較寄存器的數值

  可以輸出0%~100%占空比的PWM信號

  使用固定TOP 值時最好使用ICR1 寄存器定義TOP。這樣OCR1A 就可以用于在OC1A輸出PWM 波。

  但是,如果PWM 基頻不斷變化(通過改變TOP值), OCR1A的雙緩沖特性使其更適合于這個應用。

  計算公式:fPWM=fclk_IO/(2*N*TOP)

 

  T/C 的時鐘源

 

  T/C 的時鐘源可以有多種選擇,由CS12:0控制,分別用于高速(低分頻)/長時間(高分頻)/外部計數場合

  一個16位定時器,在8MHz系統時鐘驅動下,可以實現uS級的高速定時和長達8秒的超長定時,這可是標準51的弱點

 

  CS12 CS11 CS10 說明

  0 0 0 無時鐘源 (T/C 停止)

  0 0 1 clkIO/1 ( 無預分頻)

  0 1 0 clkIO/8 ( 來自預分頻器)

  0 1 1 clkIO/64 ( 來自預分頻器)

  1 0 0 clkIO/256 ( 來自預分頻器)

  1 0 1 clkIO/1024 ( 來自預分頻器)

  1 1 0 外部T1 引腳,下降沿驅動

  1 1 1 外部T1 引腳,上升沿驅動

 

  分頻器復位

 

  在高預分頻應用時,通過復位預分頻器來同步T/C 與程序運行,可以減少誤差。

  但是必須注意另一個T/C是否也在使用這一預分頻器,因為預分頻器復位將會影響所有與其連接的T/C。

 

  外部時鐘源

 

  由于使用了引腳同步邏輯,建議外部時鐘的最高頻率不要大于fclk_IO/2.5。

    外部時鐘源不送入預分頻器

  選擇使用外部時鐘源后,即使T1引腳被定義為輸出,其T1引腳上的邏輯信號電平變化仍然會驅動T/C1 計數,這個特性允許用戶通過軟件來控制計數。

 

  輸入捕捉單元

 

  T/C 的輸入捕捉單元可用來捕獲外部事件,并為其賦予時間標記以說明此時間的發生時刻。

  外部事件發生的觸發信號由引腳ICP1 輸入,也可通過模擬比較器單元來實現。

  時間標記可用來計算頻率、占空比及信號的其它特征,以及為事件創建日志。

 

  輸入捕捉單元可以工作在多種工作模式下

 

  (使用ICR1定義TOP的(WGM1=12,14,10,8)波形產生模式時,ICP1與輸入捕捉功能脫開,從而輸入捕捉功能被禁用。)

  在任何輸入捕捉工作模式下都不推薦在操作過程中改變TOP值

 

  當引腳ICP1 上的邏輯電平( 事件) 發生了變化,或模擬比較器輸出ACO 電平發生了變化,并且這個電平變化為邊沿檢測器所證實,輸入捕捉即被激發:

  16位的TCNT1 數據被拷貝到輸入捕捉寄存器ICR1,同時輸入捕捉標志位ICF1 置位。

  如果此時ICIE1 = 1,輸入捕捉標志將產生輸入捕捉中斷。

  中斷執行時ICF1 自動清零,或者也可通過軟件在其對應的I/O 位置寫入邏輯“1” 清零。

 

  注意,改變觸發源有可能造成一次輸入捕捉。因此在改變觸發源后必須對輸入捕捉標志執行一次清零操作以避免出現錯誤的結果

 

  除去使用ICR1定義TOP的波形產生模式外, T/C中的噪聲抑制器與邊沿檢測器總是使能的。

  (其實就是永遠使能??)

  使能噪聲抑制器后,在邊沿檢測器前會加入額外的邏輯電路并引入4個系統時鐘周期的延遲。

  噪聲抑制器使用的是系統時鐘,因而不受預分頻器的影響

 

  使用輸入捕捉中斷時,中斷程序應盡可能早的讀取ICR1 寄存器

  如果處理器在下一次事件出現之前沒有讀取ICR1 的數據, ICR1 就會被新值覆蓋,從而無法得到正確的捕捉結果。

 

  測量外部信號的占空比時要求每次捕捉后都要改變觸發沿。

  因此讀取ICR1 后必須盡快改變敏感的信號邊沿。改變邊沿后,ICF1 必須由軟件清零( 在對應的I/O 位置寫”1”)。

  若僅需測量頻率,且使用了中斷發生,則不需對ICF1 進行軟件清零。

 

  輸出比較單元

 

  16位比較器持續比較TCNT1與OCR1x的內容,一旦發現它們相等,比較器立即產生一個匹配信號。

  然后OCF1x 在下一個定時器時鐘置位。

  如果此時OCIE1x = 1, OCF1x 置位將引發輸出比較中斷。

 ?。ň褪钦f輸出比較可以工作在所有工作模式下,但PWM模式下更好用,功能更強)

  輸出比較單元A(OCR1A) 的一個特質是定義T/C 的TOP 值( 即計數器的分辨率)。

  TOP 值還用來定義通過波形發生器產生的波形的周期。

  由于在任意模式下寫TCNT1 都將在下一個定時器時鐘周期里阻止比較匹配,在使用輸出比較時改變TCNT1就會有風險,不管T/C是否在運行

  這個特性可以用來將OCR1x初始化為與TCNT1 相同的數值而不觸發中斷。

 

  強制輸出比較(FOC)

 

  工作于非PWM 模式時,可以通過對強制輸出比較位FOC1x 寫”1” 的方式來產生比較匹配。

  強制比較匹配不會置位 OCF1x 標志,也不會重載/ 清零定時器,

  但是OC1x 引腳將被更新,好象真的發生了比較匹配一樣(COMx1:0 決定OC1x 是置位、清零,還是交替變化)。

 

  比較匹配輸出單元

 

  比較匹配模式控制位COM1x1:0 具有雙重功能。

  1 波形發生器利用COM1x1:0 來確定下一次比較匹配發生時的輸出比較OC1x 狀態;

  2 COM1x1:0 還控制OC1x 引腳輸出的來源。

  只要COM1x1:0 不全為零,波形發生器的輸出比較功能就會重載OC1x 的通用I/O 口功能。

  但是OC1x 引腳的方向仍舊受控于數據方向寄存器 (DDR)。

  從OC1x 引腳輸出有效信號之前必須通過數據方向寄存器的DDR_OC1x 將此引腳設置為輸出。

 

  波形發生器利用COM1x1:0 的方法在普通模式、CTC 模式和PWM 模式下有所區別。

  對于所有的模式,設置COM1x1:0=0 表明比較匹配發生時波形發生器不會操作OC1x寄存器

 

  訪問16位寄存器

 

  寫16 位寄存器時,應先寫入該寄存器的高位字節。

  usigned int k;

  k=0x1234;

  TCNT1H=(unsigned char)(k>>8);

  TCNT1L=(unsigned char) k;

  而讀16 位寄存器時應先讀取該寄存器的低位字節。

  usigned int k;

  k=TCNT1L;

  k+=(unsigned int)(TCNT1H<<8);

  使用“C” 語言時,編譯器會自動處理16位操作。

  usigned int k;

  k=0x1234;

  TCNT=k;

  k=TCNT1;

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
中文久久乱码一区二区| 亚洲欧美在线观看| 久久久女女女女999久久| 亚洲一区二区三区四区五区黄| 欧美精品一区二区三区在线看午夜| 亚洲激情网站| 亚洲国产精品激情在线观看| 欧美国产一区二区在线观看| 亚洲乱码国产乱码精品精天堂| 91久久久国产精品| 欧美日韩一区二区三区四区五区 | 亚洲日本va午夜在线影院| 亚洲国产精品久久久久秋霞蜜臀| 欧美国产精品劲爆| a4yy欧美一区二区三区| 亚洲精品久久嫩草网站秘色| 欧美日韩中文另类| 久久国产欧美| 最新亚洲电影| 一区二区三区鲁丝不卡| 国产欧美日韩综合精品二区| 久久在线91| av成人免费观看| 亚洲欧美国产精品专区久久| 激情小说亚洲一区| 欧美三级第一页| 久久精品国产精品| 亚洲另类自拍| 亚洲男女自偷自拍| 亚洲福利一区| 国产精品理论片在线观看| 久久噜噜噜精品国产亚洲综合| 亚洲毛片av在线| 亚洲在线第一页| 亚洲国产三级| 国产噜噜噜噜噜久久久久久久久 | 91久久久在线| 国产伦精品一区二区三区照片91| 久久综合九色欧美综合狠狠| 中文欧美字幕免费| 亚洲成色777777女色窝| 9l视频自拍蝌蚪9l视频成人 | 国产日韩欧美日韩大片| 欧美另类99xxxxx| 久久久久国产一区二区三区| 一本久道久久综合狠狠爱| 欧美一区二区视频在线观看2020| 亚洲第一区中文99精品| 国产精品黄视频| 女人香蕉久久**毛片精品| 午夜亚洲激情| 99re热这里只有精品视频| 午夜久久福利| 一本久道久久综合中文字幕| 精品动漫3d一区二区三区免费| 欧美午夜不卡在线观看免费 | 亚洲日本理论电影| 国产亚洲一区二区三区在线观看 | 欧美成人自拍| 久久久综合网| 午夜欧美电影在线观看| 亚洲一区视频在线| 亚洲三级性片| 精品成人在线视频| 国产视频一区在线观看一区免费| 欧美日韩亚洲一区二区三区在线观看| 久久午夜av| 欧美中文在线视频| 亚洲一区在线播放| 一本大道久久a久久综合婷婷| 亚洲第一区在线| 亚洲欧美日韩另类| 亚洲五月婷婷| 99精品热6080yy久久| 亚洲高清资源| 亚洲国产99精品国自产| 黄色成人av网| 国产一区二区毛片| 国产一区91| 国产视频一区在线观看| 国产伦精品免费视频| 国产精品黄页免费高清在线观看| 欧美日韩国产三级| 欧美日韩xxxxx| 欧美日韩国产影片| 欧美激情a∨在线视频播放| 美女视频黄免费的久久| 久久视频一区二区| 久久青草久久| 久久久久综合网| 久久高清免费观看| 久久精品首页| 久久久久国色av免费观看性色| 性久久久久久| 性久久久久久久久久久久| 亚洲欧美日韩中文播放| 亚洲欧美在线高清| 午夜精品久久久久久久久久久久久| 亚洲在线不卡| 午夜精品一区二区三区电影天堂| 亚洲欧美国产毛片在线| 午夜日韩视频| 久久成人亚洲| 另类国产ts人妖高潮视频| 美女视频一区免费观看| 欧美高清不卡| 欧美日韩精品免费观看视一区二区| 欧美另类一区| 欧美午夜激情在线| 国产精品久久久久久福利一牛影视 | 国产日韩欧美一区二区三区四区| 国产视频欧美视频| 韩国av一区二区三区| 在线观看日韩一区| 亚洲狼人综合| 亚洲视频在线视频| 午夜精品视频在线| 久久精品夜色噜噜亚洲a∨| 亚洲高清免费在线| 亚洲免费精品| 亚洲欧美日韩电影| 久久午夜电影| 欧美人成在线| 国产精品视频一区二区高潮| 国产专区综合网| 亚洲国产欧美在线人成| 一区二区三区国产在线观看| 亚洲欧美国产高清va在线播| 久久精品免费看| 99www免费人成精品| 亚洲欧美日本日韩| 久久久久九九九九| 欧美精品久久久久久久| 国产精品久久久久久久午夜 | 欧美视频在线观看视频极品| 国产区精品视频| 亚洲国产经典视频| 亚洲在线成人精品| 亚洲精品中文在线| 欧美一区二区视频网站| 欧美精品在线观看一区二区| 国产日韩欧美在线播放| 99精品99| 亚洲激情影院| 欧美在线观看一区二区| 欧美激情综合在线| 国产主播一区二区| 亚洲视频在线观看视频| 亚洲片区在线| 久久er99精品| 欧美视频在线一区二区三区| 国产综合久久久久影院| 一区二区三区国产| 亚洲精品乱码久久久久久按摩观 | 久久综合九色99| 欧美日韩免费观看一区=区三区| 国产日韩精品在线播放| 亚洲久久成人| 午夜精品久久一牛影视| 一区二区精品在线| 久久黄色小说| 欧美久久影院| 国产小视频国产精品| 91久久精品国产91久久| 亚洲欧美国产三级| 久久精品视频网| 性做久久久久久免费观看欧美| 久久一区激情| 国产精品欧美在线| 91久久久久久国产精品| 先锋a资源在线看亚洲| 日韩亚洲欧美一区二区三区| 性感少妇一区| 欧美日韩国产a| 国产亚洲在线| aa级大片欧美三级| 亚洲第一主播视频| 亚洲欧美综合v| 欧美激情成人在线视频| 国产麻豆精品theporn| 激情校园亚洲| 久久gogo国模裸体人体| 亚洲综合国产激情另类一区| 美日韩免费视频| 国产人久久人人人人爽| 亚洲免费av电影| 亚洲欧洲精品一区二区三区不卡| 欧美亚洲免费电影| 欧美精品一区二区久久婷婷| 在线免费不卡视频| 欧美一级黄色录像| 亚洲中字在线| 欧美人与禽猛交乱配视频| 狠狠色综合日日| 欧美亚洲综合久久| 欧美一区二区三区在线| 欧美三级视频在线播放| 亚洲欧洲一区二区在线播放| 久久激情视频久久| 欧美综合77777色婷婷|