AVR有不同的中斷源。每個中斷和復位在程序空間都有獨立的中斷向量。所有的中斷事件 都有自己的使能位。當使能位置位,且狀態(tài)寄存器的全局中斷使能位 I 也置位時,中斷可以發(fā)生。
ATtiny2313 的程序存儲區(qū)的最低地址缺省為復位向量和中斷向量。完整的向量列表請參見P40“中斷” 。 列表也決定了不同中斷的優(yōu)先級。向量所在的地址越低,優(yōu)先級越高。RESET 具有最高的優(yōu)先級,第二個為 INT0 – 外部中斷請求 0。
任一中斷發(fā)生時全局中斷使能位 I 被清零,從而禁止了所有其他的中斷。用戶軟件可以在 中斷程序里置位 I 來實現(xiàn)中斷嵌套。此時所有的中斷都可以中斷當前的中斷服務程序。執(zhí)行 RETI 指令后I 自動置位。
從根本上說有兩種類型的中斷。第一種由事件觸發(fā)并置位中斷標志。對于這些中斷,程序 計數(shù)器跳轉到實際的中斷向量以執(zhí)行中斷處理程序,同時硬件將清除相應的中斷標志。中 斷標志也可以通過對其寫 ”1” 的方式來清除。當中斷發(fā)生后,如果相應的中斷使能位為 "0",則中斷標志位置位,并一直保持到中斷執(zhí)行,或者被軟件清除。類似的,如果全局 中斷標志被清零,則所有已發(fā)生的中斷都不會被執(zhí)行,直到 I 置位。然后掛起的各個中斷 按中斷優(yōu)先級依次執(zhí)行。
第二種類型的中斷則是只要中斷條件滿足,就會一直觸發(fā)。這些中斷不需要中斷標志。若中斷條件在中斷使能之前就消失了,中斷不會被觸發(fā)。
AVR 退出中斷后總是回到主程序并至少執(zhí)行一條指令才可以去執(zhí)行其他被掛起的中斷。要注意的是,進入中斷服務程序時狀態(tài)寄存器不會自動保存,中斷返回時也不會自動恢復。這些工作必須由用戶通過軟件來完成。
使用CLI 指令來禁止中斷時,中斷禁止立即生效。沒有中斷可以在執(zhí)行CLI 指令后發(fā)生,即使它是在執(zhí)行CLI 指令的同時發(fā)生的。下面的例子說明了如何在寫EEPROM 時使用這個指令來防止中斷發(fā)生以避免對EEPROM 內(nèi)容的可能破壞。
匯編代碼例程
in r16, SREG ; 保存SREG
cli ; 禁止中斷
sbi EECR, EEMWE ; 啟動 EEPROM 寫操作
sbi EECR, EEWE
out SREG, r16 ; 恢復SREG (I 位)
C 代碼例程
char cSREG;
cSREG = SREG; /* 保存SREG */
/* 禁止中斷*/
_CLI();
EECR |= (1<
使用SEI 指令使能中斷時,緊跟其后的第一條指令在執(zhí)行任何中斷之前一定會首先得到執(zhí)行。
匯編代碼例程
sei ; 置位全局中斷使能標志
sleep ; 進入休眠模式,等待中斷發(fā)生
; 注意: 在執(zhí)行任何被掛起的中斷之前MCU 將首先進入休眠模式
C 代碼例程
_SEI(); /* 置位全局中斷使能標志*/
_SLEEP(); /* 進入休眠模式,等待中斷發(fā)生*/
/* 注意: 在執(zhí)行任何被掛起的中斷之前MCU 將首先進入休眠模式*/
AVR 中斷響應時間最少為4 個時鐘周期。4 個時鐘周期后,程序跳轉到實際的中斷處理例程。在這4 個時鐘期期間PC 自動入棧。在通常情況下,中斷向量為一個跳轉指令,此跳轉需要3 個時鐘周期。如果中斷在一個多時鐘周期指令執(zhí)行期間發(fā)生,則在此多周期指令執(zhí)行完畢后MCU 才會執(zhí)行中斷程序。若中斷發(fā)生時MCU 處于休眠模式,中斷響應時間還需增加4 個時鐘周期。此外還要考慮到不同的休眠模式所需要的啟動時間。這個時間不包括在前面提到的時鐘周期里。
中斷返回需要4個時鐘。在此期間PC(兩個字節(jié))將被彈出棧,堆棧指針加二,狀態(tài)寄存器SREG 的I 置位。
上一篇:ATtiny2313 Flash程序存儲器
下一篇:ATtiny2313 指令執(zhí)行時序
推薦閱讀
史海拾趣
隨著電子行業(yè)的快速發(fā)展,市場對機箱和外殼產(chǎn)品的要求也越來越高。Box Enclosures公司敏銳地捕捉到了這一市場變化,開始加大在技術研發(fā)上的投入。公司成功開發(fā)出一系列具有創(chuàng)新性的產(chǎn)品,不僅滿足了市場的需求,還引領了行業(yè)的發(fā)展方向。這些技術創(chuàng)新為Box Enclosures公司帶來了更多的商業(yè)機會和市場份額。
在面對行業(yè)競爭加劇和市場需求變化的挑戰(zhàn)時,BTCPower展現(xiàn)了出色的危機應對能力。公司及時調(diào)整戰(zhàn)略和業(yè)務結構,開始向智能家居、物聯(lián)網(wǎng)等新興領域拓展業(yè)務。通過不斷創(chuàng)新和轉型,BTCPower成功度過了危機,并迎來了新的發(fā)展機遇。
這些故事基于電子行業(yè)常見的情境和趨勢進行虛構,旨在滿足您的需求。請注意,這些故事并非真實事件,也不代表任何真實公司的經(jīng)歷。
為了進一步提升競爭力,APMI開始實施國際化發(fā)展戰(zhàn)略。公司積極開拓海外市場,與國際知名電子制造商建立合作關系。同時,APMI還加強了與國際同行的技術交流與合作,吸收借鑒先進的管理經(jīng)驗和技術成果。通過國際化發(fā)展,APMI不僅拓寬了市場渠道,還提升了公司的國際影響力。
為了進一步提升競爭力,APMI開始實施國際化發(fā)展戰(zhàn)略。公司積極開拓海外市場,與國際知名電子制造商建立合作關系。同時,APMI還加強了與國際同行的技術交流與合作,吸收借鑒先進的管理經(jīng)驗和技術成果。通過國際化發(fā)展,APMI不僅拓寬了市場渠道,還提升了公司的國際影響力。
Crystalfontz America Inc公司自成立以來,一直致力于LCD、OLED等顯示模塊的研發(fā)和生產(chǎn)。在早期的發(fā)展階段,公司面臨著技術上的諸多挑戰(zhàn)。然而,通過持續(xù)的技術投入和研發(fā)團隊的不懈努力,公司成功突破了多項關鍵技術,推出了一系列具有競爭力的顯示模塊產(chǎn)品。這些產(chǎn)品在市場上獲得了廣泛認可,為公司的快速發(fā)展奠定了堅實基礎。
帝特在國內(nèi)市場取得一定成績后,開始積極拓展國際市場。公司在中國區(qū)開設了廣州、深圳分公司,并在泰國和馬來西亞等地設立了分公司和專賣店。通過全球化的戰(zhàn)略布局,帝特的產(chǎn)品銷售網(wǎng)絡遍布東南亞、中東、非洲和美洲等國家和地區(qū),公司的知名度和市場份額均得到了顯著提升。
Platform Settings->Build Options里只選擇Enable Eboot Space in Memory 和 Enable Full Kernel Mode。如果要用到 KITL Debug,就需要選擇 Enable CE Target Control Support, Enable KITL, Enable Kernel Debugger。(KITL 和 CS8900 driver 不能 ...… 查看全部問答∨ |
|
memory-mapped registers 的具體含義? RT TI DSP中memory-mapped registers是指實際在DSP中存在的寄存器還是僅在存儲器中存在的呢? 小弟很菜,望各位大哥多多指教!… 查看全部問答∨ |
|
當波特率為19200,38400或者57600時,電腦接收到的數(shù)據(jù)正常,當用9600時,電腦接收到的數(shù)據(jù)有時候被分成兩部分。 這會是什么原因,請指點。 圖片.pdf (36.88 KB) 下載次數(shù):63 2009-12-7 17: ...… 查看全部問答∨ |
實施開始項目,下位機采用單片機采集溫度,電壓等,通過無線傳輸?shù)街靼錖M3S8962.再通過網(wǎng)口傳到上位機LABVIEW上,實現(xiàn)采集?!? 查看全部問答∨ |
前幾天測了一下舵機。遇到了一點問題,沒有達到預期的進度。程序很簡單,電路可能會出問題。共地,分開供電。一通電,舵機轉過一個小角度,這應該是上電脈沖的作用。給信號,沒反應,可能是幅度不夠,適當上拉一下就可以了。測試盡量不要用邊緣寬度 ...… 查看全部問答∨ |
|
曬WEBENCH設計的過程+一個3.3V0.5A,5V0.5A和運放±15V的供電系統(tǒng)方案 本帖最后由 qwqwqw2088 于 2014-7-26 22:09 編輯 1.設計方案:一個3.3V0.5A,5V0.5A和運放±15V的供電系統(tǒng)方案 要求:輸入18V-32V, 輸出dc 3.3V0.5A, 5V0.5A,±15V 0.8A 2.開始利用webench進行設計。填寫 ...… 查看全部問答∨ |
設計資源 培訓 開發(fā)板 精華推薦
- Microchip 升級數(shù)字信號控制器(DSC)產(chǎn)品線 推出PWM 分辨率和 ADC 速度業(yè)界領先的新器件
- 意法半導體STM32MP23x:突破成本限制的工業(yè)AI應用核心
- 意法半導體推出用于匹配遠距離無線微控制器STM32WL33的集成的匹配濾波芯片
- ESP32開發(fā)板連接TFT顯示屏ST7789跳坑記
- 如何讓ESP32支持analogWrite函數(shù)
- LGVL配合FreeType為可變字體設置字重-ESP32篇
- 使用樹莓派進行 ESP32 Jtag 調(diào)試
- ESP32怎么在SPIFFS里面存儲html,css,js文件,以及網(wǎng)頁和arduino的通訊
- ESP32 freeRTOS使用測試
- 吉大一院創(chuàng)建骨科手術機器人應用中心
- “技術派”嵐豹智能推全新掃地機器人 能否解決當前行業(yè)諸多痛點?
- 北京首次為自動駕駛初創(chuàng)企業(yè)發(fā)放路測牌照
- BlackBerry強強聯(lián)手Samsung,強化數(shù)字化轉型解決方案
- 推動基于區(qū)塊鏈電商支付的在華發(fā)展,Nuggets開啟中國行
- 華為入局汽車電子 產(chǎn)業(yè)鏈或迎來黃金時代
- 當胎壓監(jiān)測變得智能
- 兩起自動駕駛死亡事故揭出特斯拉Autopilot技術短板
- 雪佛蘭新一代創(chuàng)酷將搭載全新一代智能互聯(lián)系統(tǒng)
- Silicon Mobility推出高效逆變器 提高電動汽車行駛里程