AVR教程系列一(12):ATmega16 簡介(六)_第1頁
AVR教程系列一(12):ATmega16 簡介(六)_第2頁
AVR教程系列一(12):ATmega16 簡介(六)_第3頁
AVR教程系列一(12):ATmega16 簡介(六)_第4頁
AVR教程系列一(12):ATmega16 簡介(六)_第5頁
已閱讀5頁,還剩7頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、ATmegga16 簡介(六六)ATmegga16 控制和狀狀態(tài)寄存器器MCUCCSRAVR 控控制和狀態(tài)態(tài)寄存器提提供了有關(guān)關(guān)引起AVVR復位的的復位源的的信息。? Bitt 4 JTRRF: JJTAG 復位標志志通過JTTAG 指指令AVRR_RESSET 可可以使JTTAG 復復位寄存器器置位,并并引發(fā)MCCU 復位位,并使JJTRF 置位。上上電復位將將使其清零零,也可以以通過寫”0” 來來清除。? Bitt 3 WDRRF: 看看門狗復位位標志看門門狗復位發(fā)發(fā)生時置位位。上電復復位將使其其清零,也也可以通過過寫”0” 來清除除。? BBit 22 BBORF: 掉電檢檢測復位標標志

2、掉電檢檢測復位發(fā)發(fā)生時置位位。上電復復位將使其其清零,也也可以通過過寫”0” 來清除除。? BBit 11 EEXTRFF: 外部部復位標志志外部復位位發(fā)生時置置位。上電電復位將使使其清零,也也可以通過過寫”0” 來清除除。? BBit 00 PPORF: 上電復復位標志上上電復位發(fā)發(fā)生時置位位。只能通通過寫”00” 來清清除。為了了使用這些些復位標志志來識別復復位條件,用用戶應該盡盡早讀取此此寄存器的的數(shù)據(jù),然然后將其復復位。如果果在其他復復位發(fā)生之之前將此寄寄存器復位位,則后續(xù)續(xù)復位源可可以通過檢檢查復位標標志來了解解。 ATmegga16 基準電壓壓使能信號號和啟動時時間ATmegga1

3、6 具有片內(nèi)內(nèi)能隙基準準源,用于于掉電檢測測,或者是是作為模擬擬比較器或或ADC的的輸入。AADC 的的2.566V 基準準電壓由此此片內(nèi)能隙隙基準源產(chǎn)產(chǎn)生。電壓壓基準的啟啟動時間可可能影響其其工作方式式。啟動時時間列于TTablee 16。為了降低低功耗,可可以控制基基準源僅在在如下情況況打開:11. BOOD 使能能 ( 熔熔絲位BOODEN 被編程)2. 能能隙基準源源連接到模模擬比較器器(ACSSR 寄存存器的ACCBG 置置位)3. ADCC 使能因因此,當BBOD 被被禁止時,置置位ACBBG 或使使能ADCC 后要啟啟動基準源源。為了降降低掉電模模式的功耗耗,用戶可可以禁止上上述

4、三種條條件,并在在進入掉電電模式之前前關(guān)閉基準準源。ATmegga16 看門狗定定時器看門狗定時時器由獨立立的1 MMhz 片片內(nèi)振蕩器器驅(qū)動。這這是VCCC = 55V 時的的典型值。請參見特特性數(shù)據(jù)以以了解其他他VCC 電平下的的典型值。通過設置置看門狗定定時器的預預分頻器可可以調(diào)節(jié)看看門狗復位位的時間間間隔,如PP41Taable 17 所所示。看門門狗復位指指令WDRR 用來復復位看門狗狗定時器。此外,禁禁止看門狗狗定時器或或發(fā)生復位位時定時器器也被復位位。復位時時間有8 個選項。如果沒有有及時復位位定時器,一一旦時間超超過復位周周期, AATmegga16 就復位,并并執(zhí)行復位位向量

5、指向向的程序。具體的看看門狗復位位時序在PP39 有有說明。為為了防止無無意之間禁禁止看門狗狗定時器,在在看門狗禁禁用后必須須跟一個特特定的修改改序列。詳詳見看門狗狗定時器控控制寄存器器。看門狗定時時器控制寄寄存器WWDTCRR ? Bitts 7.5 Ress: 保留留位ATmmega116 保留留位,讀操操作返回值值為零。? Bitt 4 WDTTOE: 看門狗修修改使能清清零WDEE 時必須須置位WDDTOE,否否則不能禁禁止看門狗狗。一旦置置位,硬件件將在緊接接的4 個個時鐘周期期之后將其其清零。請請參考有關(guān)關(guān)WDE 的說明來來禁止看門門狗。? Bit 3 WDE: 使能看看門狗WDD

6、E為11“ 時,看看門狗使能能,否則看看門狗將被被禁止。只只有在WDDTOE為為1“ 時WDEE 才能清清零。以下下為關(guān)閉看看門狗的步步驟:1. 在同一一個指令內(nèi)內(nèi)對WDTTOE 和和WDE 寫1“,即使WWDE 已已經(jīng)為11“2. 在緊接的的4 個時時鐘周期之之內(nèi)對WDDE 寫0”? Bitss 2.0 WDP22, WDDP1, WDP00: 看門門狗定時器器預分頻器器2, 11 和 00WDP22、WDPP1 和WWDP0 決定看門門狗定時器器的預分頻頻器,如TTablee 17 所示。下面的例子子分別用匯匯編和C 語言實現(xiàn)現(xiàn)了關(guān)閉WWDT 的的操作。在在此假定中中斷處于用用戶控制之之下

7、 ( 比如禁止止全局中斷斷) ,因而而在執(zhí)行下下面程序時時中斷不會會發(fā)生。 匯編代碼碼例程WDDT_offf:; WDT 復位WDRR; 置位 WDDTOE 和 WDEEin rr16, WDTCCRorii r166, (11WDDTOE)|(1WDEE)outt WDTTCR, r16; 關(guān)閉WDTTldi r16, (0WDEE)outt WDTTCR, r16rretC 代碼例程程voidd WDTT_offf(voiid)/* WWDT 復復位*/_WDDR();/* 置位位 WDTTOE 和和 WDEE*/WDDTCR |= (1WWDTOEE) | (1WDE);/* 關(guān)閉WDT

8、T */WWDTCRR = 00 x00;ATmegga16 中斷向量量本節(jié)描述AATmegga16的的中斷處理理。Tablee 19給給出了不同同的BOOOTRSTT/IVSSEL設置置下的復位位和中斷向向量的位置置。如果程程序永遠不不使能中斷斷,中斷向向量就沒有有意義。用用戶可以在在此直接寫寫程序。同同樣,如果果復位向量量位于應用用區(qū),而其其他中斷向向量位于BBoot 區(qū),則復復位向量之之后可以直直接寫程序序。反過來來亦是如此此。 ATmegga16 典型的復復位和中斷斷設置如下下:地址符號代碼碼說明$0000 jjmp RRESETT ; 復復位中斷向向量$0002 jmmp EXXT_

9、INNT0 ; IRQQ0 中斷斷向量$0004 jjmp EEXT_IINT1 ; IRRQ1 中中斷向量$006 jmp TIM22_COMMP ; Timeer2 比比較中斷向向量$0008 jmmp TIIM2_OOVF ; Timmer2 溢出中斷斷向量$000A jjmp TTIM1_CAPTT ; TTimerr1 捕捉捉中斷向量量$00CC jmpp TIMM1_COOMPA ; Tiimer11 比較A 中斷向向量$000E jmmp TIIM1_CCOMPBB ; TTimerr1 比較較B 中斷向向量$0110 jmmp TIIM1_OOVF ; Timmer1 溢出中斷

10、斷向量$0012 jjmp TTIM0_OVF ; Tiimer00 溢出中中斷向量$014 jmp SPI_STC ; SPPI 傳輸輸結(jié)束中斷斷向量$0016 jjmp UUSARTT_RXCC ; UUSARTT RX 結(jié)束中斷斷向量$0018 jjmp UUSARTT_UDRRE ; UDR 空中斷向向量$011A jmmp USSART_TXC ; USSART TX 結(jié)結(jié)束中斷向向量$011C jmmp ADDC ; ADC 轉(zhuǎn)換結(jié)束束中斷向量量$01EE jmpp EE_RDY ; EEEPROMM 就緒中中斷向量$020 jmp ANA_COMPP ; 模模擬比較器器中斷向量量

11、$0222 jmpp TWSSI ; 兩線串行行接口中斷斷向量$0024 jjmp EEXT_IINT2 ; IRRQ2 中中斷向量$026 jmp TIM00_COMMP ; 定時器0 比較中斷斷向量$0028 jjmp SSPM_RRDY ; SPMM 就緒中中斷向量;$02AA RESSET: ldi r16,highh(RAMMEND) ; 主主程序$002B oout SSPH,rr16 ; 設置堆堆棧指針為為RAM 的頂部$002C lldi rr16,llow(RRAMENND)$002D oout SSPL,rr16$002E ssei ; 使能中中斷$022F xxxx. .

12、 .當熔絲位位BOOTTRST 未編程,BBoot 區(qū)為 2KK 字節(jié),且且寄存器GGICR 的IVSEEL 置位位時,典型型的復位和和中斷設置置如下:地地址符號代代碼說明$000 RESEET: lldi rr16,hhigh(RAMEEND) ; 主程程序$0001 ouut SPPH,r116 ; 設置堆棧棧指針為RRAM 的的頂部$0002 lldi rr16,llow(RRAMENND)$0003 oout SSPL,rr16$0004 ssei ; 使能中中斷$0005 xxxx;.orgg $1CC02$11C02 jmp EXT_INT00 ; IIRQ0 中斷向量量$1C00

13、4 jmmp EXXT_INNT1 ; IRQQ1 中斷斷向量. . . ;$1C288 jmpp SPMM_RDYY ; SSPM 就就緒中斷向向量當熔絲絲位BOOOTRSTT 已編程程,且Booot 區(qū)區(qū)為 2KK 字節(jié)時時,典型的的復位和中中斷設置如如下:地址址符號代碼碼說明.oorg $002$002 jmp EXT_INT00 ; IIRQ0 中斷向量量$0044 jmpp EXTT_INTT1 ; IRQ11 中斷向向量. . . ;$0028 jjmp SSPM_RRDY ; SPMM 就緒中中斷向量;.orgg $1CC00$11C00 RESEET: lldi rr16,hh

14、igh(RAMEEND) ; 主程程序$1CC01 oout SSPH,rr16 ; 設置堆堆棧指針為為RAM 的頂部$11C02 ldi r16,low(RAMEEND)$1C033 outt SPLL,r166$1C004 seei ; 使能中斷斷$1C005 xxxx當熔絲絲位BOOOTRSTT 已編程程,Booot 區(qū)為為2K 字節(jié)節(jié),且寄存存器GICCR 的IVSEEL 置位位時,典型型的復位和和中斷設置置如下:地地址符號代代碼說明.org $1C000$1CC00 jjmp RRESETT ; RResett 中斷向向量$1CC02 jjmp EEXT_IINT0 ; IRRQ0

15、中中斷向量$1C044 jmpp EXTT_INTT1 ; IRQ11 中斷向向量. . . ;$11C28 jmp SPM_RDY ; SPPM 就緒緒中斷向量量;$1C22A REESET: ldii r166,higgh(RAAMENDD) ; 主程序$11C2B out SPH,r16 ; 設置置堆棧指針針為RAMM 的頂部部$1C22C lddi r116,loow(RAAMENDD)$1CC2D oout SSPL,rr16$11C2E sei ; 使能能中斷$11C2F xxx在在應用區(qū)和和Boott 區(qū)之間間移動中斷斷向量 通用中斷斷控制寄存存器決定中中斷向量表表的放置地地址通

16、用中中斷控制寄寄存器 GICRR? Biit 1 IVVSEL: 中斷向向量選擇當當IVSEEL 為0“ 時,中斷斷向量位于于Flassh 存儲儲器的起始始地址;當當IVSEEL 為1“ 時,中斷斷向量轉(zhuǎn)移移到Booot 區(qū)的的起始地址址。實際的的Boott 區(qū)起始始地址由熔熔絲位BOOOTSZZ 確定。具體請參參考P2334“ 支支持引導裝裝入程序 在寫寫的同時可可以讀(RRWW, Readd-Whiile-WWritee) 的自自我編程能能力” 。為了防止止無意識地地改變中斷斷向量表,修修改IVSSEL 時時需要遵照照如下過程程:1. 置位中斷斷向量修改改使能位IIVCE22. 在緊緊接的

17、4 個時鐘周周期里將需需要的數(shù)據(jù)據(jù)寫入IVVSEL,同同時對IVVCE 寫寫”0”執(zhí)行行上述序列列時中斷自自動被禁止止。其實,在在置位IVVCE 時時中斷就被被禁止了,并并一直保持持到寫IVVSEL 操作之后后的下一條條語句。如如果沒有IIVSELL 寫操作作,則中斷斷在置位IIVCE 之后的4 個時鐘周周期保持禁禁止。需要要注意的是是,雖然中中斷被自動動禁止,但但狀態(tài)寄存存器的位II 的值并并不受此操操作的影響響。Notte: 若若中斷向量量位于Booot區(qū),且且Boott鎖定位BLLB02被被編程,則則執(zhí)行應用用區(qū)的程序序時中斷被被禁止;若若中斷向量量位于應用用區(qū),且BBoot 鎖定位BL

18、LB12 被編程,則執(zhí)行Booot 區(qū)區(qū)的程序時時中斷被禁禁止。有關(guān)關(guān)Boott 鎖定位位的細節(jié)請請參見P2234“ 支持引導導裝入程序序 在寫寫的同時可可以讀(RRWW, Readd-Whiile-WWritee) 的自自我編程能能力” 。? Biit 0 IVVCE: 中斷向量量修改使能能改變IVSSEL 時時IVCEE 必須置置位。在IIVCE 或IVSEEL 寫操操作之后44 個時鐘鐘周期, IVCEE 被硬件件清零。如如前面所述述,置位IIVCE 將禁止中中斷。代碼碼如下:匯匯編代碼例例程:Moove_iinterrruptts:; 使能中斷斷向量的修修改ldii r166, (11

19、IVVCE)oout GGICR, r166; 將中斷斷向量轉(zhuǎn)移移到booot 區(qū)ldi r16, (1IVSSEL)oout GGICR, r166retC 代碼例程程voidd Movve_innterrruptss(voiid)/* 使能能中斷向量量的修改*/GICCR = (1IVCEE);/* 將中斷斷向量轉(zhuǎn)移移到booot 區(qū) */GIICR = (1IVSSEL); ATmegga16 通用中斷斷控制寄存存器GICCR ? Bitt 1 IVSSEL: 中斷向量量選擇當IIVSELL 為00“ 時,中中斷向量位位于Flaash 存存儲器的起起始地址;當IVSSEL 為為1“ 時,

20、中斷斷向量轉(zhuǎn)移移到Booot 區(qū)的的起始地址址。實際的的Boott 區(qū)起始始地址由熔熔絲位BOOOTSZZ 確定。具體請參參考P2334“ 支支持引導裝裝入程序 在寫寫的同時可可以讀(RRWW, Readd-Whiile-WWritee) 的自自我編程能能力” 。 為了防防止無意識識地改變中中斷向量表表,修改IIVSELL 時需要要遵照如下下過程:11. 置位位中斷向量量修改使能能位IVCCE2. 在緊接的的4 個時時鐘周期里里將需要的的數(shù)據(jù)寫入入IVSEEL,同時時對IVCCE 寫”0”執(zhí)行行上述序列列時中斷自自動被禁止止。其實,在在置位IVVCE 時時中斷就被被禁止了,并并一直保持持到寫IVVSEL 操作之后后的下一條條語句。如如果沒有IIVSELL 寫操作

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論