版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
./AVR
定時(shí)器中斷初值計(jì)算方法使用芯片
AT
Mega16
外部晶振4.00MHz定時(shí)器1
〔16位定時(shí)器寄存器TCCR1B
=
0x04
設(shè)定256預(yù)分頻要利用定時(shí)器定時(shí)1秒1,4000000
/
256
=
15625
說(shuō)明定時(shí)器每當(dāng)1/15625
秒就會(huì)觸發(fā)一次中斷2,65535
-
15625
=
49910
計(jì)算出要累加多少次才能在1秒后出發(fā)定時(shí)器1的溢出中斷3,49910
<==>
C2
F6
將計(jì)算后的值換算成16進(jìn)制4,TCNT1H
=
0xC2
;
對(duì)寄存器賦值
TCNT1L
=
0xF6
;=================================================例如用16位定時(shí)器TIMER1,4MHZ晶振,256分頻,100ms定時(shí),如何求得初值賦給TCNT1?65536-<4M/256>*0.1=63973.5其中,4M是晶體頻率,0.1是定時(shí)時(shí)長(zhǎng)單位秒。對(duì)于8位的定時(shí)器T=<2^8-計(jì)數(shù)初值>*晶振周期*分頻數(shù)=<2^8-計(jì)數(shù)初值>/晶振頻率*分頻數(shù)計(jì)數(shù)初值=2^8-T/晶振周期/分頻數(shù)=2^8-T*晶振頻率/分頻數(shù)因?yàn)锳VR一指令一周期IAR
For
AVR
精確延時(shí)C語(yǔ)言中,想使用精確的延時(shí)程序并不容易。IAR
中有這樣的一個(gè)函數(shù)__delay_cycles<>,該函數(shù)在頭文件intrinsics.h中定義,函數(shù)的作用就是延時(shí)N個(gè)指令周期。根據(jù)這個(gè)函數(shù)就可以實(shí)現(xiàn)精確的延時(shí)函數(shù)了〔但不能做到100%精確度。實(shí)現(xiàn)的方法:建立一個(gè)delay.h的頭文件:#ifndef
__IAR_DELAY_H#define
__IAR_DELAY_H#include
<intrinsics.h>#define
XTAL
8
//可定義為你所用的晶振頻率〔單位Mhz
#define
delay_us<x>
__delay_cycles
<
<unsigned
long><x
*
XTAL>
>
#define
delay_ms<x>
__delay_cycles
<
<unsigned
long><x
*
XTAL*1000>
>#define
delay_s<x>
__delay_cycles
<
<unsigned
long><x
*
XTAL*1000000>
>#endif
注意:
__delay_cycles<x>,x必須是常量或則是常量表達(dá)式,如果是變量則編譯報(bào)錯(cuò)!關(guān)于溢出中斷不管是哪個(gè)單片機(jī)都是不斷累加,使其寄存器溢出觸發(fā)中斷,然后跳轉(zhuǎn)到中斷函數(shù)處執(zhí)行中斷服務(wù)程序。對(duì)于定時(shí)器初值的設(shè)定可以加深對(duì)定時(shí)器的工作原理的理解。
ATMega16
里面有8位和16位兩種定時(shí)器,他們何時(shí)會(huì)溢出這個(gè)是固定的,也就是到達(dá)他們的計(jì)數(shù)圍的最大值就會(huì)產(chǎn)生中斷,8位的定時(shí)器的最大計(jì)數(shù)圍是0~256〔2的8次方,就是累加到256后他就會(huì)產(chǎn)生中斷,16位的定時(shí)器最大計(jì)數(shù)圍是0~65536〔2的16次方,累加到65536時(shí)他就會(huì)產(chǎn)生中斷。而我們所謂的計(jì)數(shù)初值是就是要設(shè)定定時(shí)器在什么地方開(kāi)始計(jì)數(shù),以8位定時(shí)器為例比如:初值為100,所以定時(shí)器從100開(kāi)始累加,累加了156次,加到256后產(chǎn)生中斷,這就是中間消耗的時(shí)間和指令周期就是我們要去設(shè)定的時(shí)間;再比如:初值是200,所以定時(shí)器從200開(kāi)始累加,累加了56次,加到256后產(chǎn)生中斷,可以看到第一定時(shí)要累加156次才會(huì)中斷而第二次只要累加56次就會(huì)產(chǎn)生中斷,顯然第一次設(shè)定的時(shí)間要比第二次的長(zhǎng)。定時(shí)器不僅可以定時(shí),而且我們用到定時(shí)器的時(shí)候往往是需要精確定時(shí)的時(shí)候。我們可以計(jì)算出我們?cè)O(shè)定的初值會(huì)在多長(zhǎng)時(shí)間后進(jìn)入中斷。實(shí)驗(yàn)平臺(tái):ATMega16
晶振:
11.0592
MHz對(duì)初值的計(jì)算:
1,11059200
/
1024
=
10800
設(shè)定為1024倍分頻,得到每1秒需要進(jìn)行多少次累加
2,10800
/
100
=
108
得到10ms
的定時(shí)需要進(jìn)行多少次累加。
3,256
-
108
=
148
計(jì)算圍最大值減去要累加的時(shí)間,得到初值,即從哪里開(kāi)始累加才能在溢出時(shí)為10ms的時(shí)間。
4,148
<==>
0x94
得到十六進(jìn)制值,賦值給TCNT0代碼:定時(shí)10ms#include
<iom16.h>unsigned
char
flag
=
0;void
timer_init<void>{TCCR0
=
0x05;
//進(jìn)行1024分頻
TCNT0
=
0x94;
//賦計(jì)數(shù)初值
TIMSK_TOIE0
=
1;
//開(kāi)使能
SREG_I
=
1;
//開(kāi)總中斷
}#pragma
vector
=
TIMER0_OVF_vect__interrupt
void
time0_normal<void>{
TCNT0
=
0x94;
//重新賦初值
flag++;}void
main<void>{
timer_init<>;
DDRB_Bit0
=
1;
while<1>
{
if<flag
==
100>
//10ms
重復(fù)100次,即為1秒
{
PORTB_Bit0
=
~PORTB_Bit0;
//讓LED閃爍
flag
=
0;
}
}
}
//+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++//實(shí)驗(yàn)平臺(tái):ATMega16晶振:11.059216位定時(shí)器初值設(shè)定:
1,11059200
/
256
=
43200
設(shè)定256倍分頻,得到每1秒需要進(jìn)行多少次累加
2,65536
-
43200
=
22336
計(jì)算圍最大值減去要累加的時(shí)間,得到初值,即從哪里開(kāi)始累加才能在溢出時(shí)為1s的時(shí)間。
3,22336
<==>
0x57
0x40
得到十六進(jìn)制值,賦值給TCNT1H
,
TCNT1L:定時(shí)1s#include
<iom16.h>
unsigned
char
flag
=
0;
void
timer_init<void>
{
TCCR1B
=
0x04;
TCNT1H
=
0x57;
TCNT1L
=
0x40;
TIMSK_TOIE1
=
1;
SREG_I
=
1;
}
#pragma
vector
=
TIMER1_OVF_vect
__interrupt
void
time1
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025版信用證抵押貸款業(yè)務(wù)合作協(xié)議范本3篇
- 2025版土方工程居間代理服務(wù)合同范本下載33篇
- 2025年度股權(quán)分割與繼承處理協(xié)議
- 2025年度房地產(chǎn)合作終止協(xié)議書
- 2025年度旅游文化股權(quán)合作協(xié)議書
- 二零二五年度木工機(jī)械操作人員勞務(wù)租賃合同4篇
- 2025年度牧業(yè)產(chǎn)品品牌推廣與營(yíng)銷合同4篇
- 二零二五年度火鍋餐飲品牌區(qū)域代理授權(quán)協(xié)議
- 二零二五年度餐飲店員工激勵(lì)機(jī)制與績(jī)效考核合同
- 二零二五版環(huán)保技術(shù)入股合作協(xié)議書3篇
- 房地產(chǎn)銷售任務(wù)及激勵(lì)制度
- 并購(gòu)指南(如何發(fā)現(xiàn)好公司)
- DL-T-1642-2016環(huán)形混凝土電桿用腳扣
- 銅礦成礦作用與地質(zhì)環(huán)境分析
- 30題紀(jì)檢監(jiān)察位崗位常見(jiàn)面試問(wèn)題含HR問(wèn)題考察點(diǎn)及參考回答
- 詢價(jià)函模板(非常詳盡)
- 《AI營(yíng)銷畫布:數(shù)字化營(yíng)銷的落地與實(shí)戰(zhàn)》
- 麻醉藥品、精神藥品、放射性藥品、醫(yī)療用毒性藥品及藥品類易制毒化學(xué)品等特殊管理藥品的使用與管理規(guī)章制度
- 乘務(wù)培訓(xùn)4有限時(shí)間水上迫降
- 2023年低年級(jí)寫話教學(xué)評(píng)語(yǔ)方法(五篇)
- DB22T 1655-2012結(jié)直腸外科術(shù)前腸道準(zhǔn)備技術(shù)要求
評(píng)論
0/150
提交評(píng)論