新聞中心

EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 混合信號嵌入式設(shè)計實(shí)驗(yàn)指南-數(shù)字實(shí)驗(yàn)之:實(shí)驗(yàn)2—中斷

混合信號嵌入式設(shè)計實(shí)驗(yàn)指南-數(shù)字實(shí)驗(yàn)之:實(shí)驗(yàn)2—中斷

作者: 時間:2013-12-26 來源:網(wǎng)絡(luò) 收藏

本文引用地址:http://butianyuan.cn/article/256987.htm

1.2.6 實(shí)驗(yàn)2F—強(qiáng)迫一個

步驟1:創(chuàng)建新的工程。?復(fù)制Lab2E,將其命名為Lab2F。?所有參數(shù)和跳線連接保持一樣。?重新生成應(yīng)用。有時候,通過軟件強(qiáng)迫產(chǎn)生一個是非常有利的。通過設(shè)置的INT_CLRx

寄存器能實(shí)現(xiàn)這個功能。對于休眠定時器,這是INT_CLR0 的第6 位。為了保證該位不是偶然設(shè)置的,必須設(shè)置使能軟件中斷位(ENSWINT),該位為INT_MSK3 寄存器的第7 位。表1.4 給出了操作INT_CLRx 位的可能結(jié)果。

1.4 INT_CLRx ENSWINT 行為/結(jié)果表

行為

結(jié)果

從INT_CLRx

位讀一個0

從INT_CLRx

位讀一個1

當(dāng)ENSWINT=0,寫0

到INT_CLRx

當(dāng)ENSWINT=0,寫1

到INT_CLRx

當(dāng)ENSWINT=1,寫0

到INT_CLRx

當(dāng)ENSWINT=1,寫1

到INT_CLRx

練習(xí)2F-1:在前面的實(shí)驗(yàn)中,沒有通過添加代碼設(shè)置ENSWINT 為0 來清除已經(jīng)發(fā)布的中斷,為什么這樣做?

步驟2:修改代碼。

添加代碼使能ENSWINT。添加控制循環(huán)代碼強(qiáng)制休眠定時器發(fā)布一個中斷。

練習(xí)2F-2:現(xiàn)在,這個程序如何工作??重新生成工程,重新建立工程,下載到Eval1 板子,運(yùn)行。練習(xí)2F-3:現(xiàn)在操作是否和你的預(yù)測一樣?

1.2.7 實(shí)驗(yàn)2G—創(chuàng)建非常小的中斷服務(wù)例程

步驟1:創(chuàng)建新的工程。

復(fù)制Lab2F,將其命名為Lab2G。?設(shè)置Sleep_Timer 全局參數(shù)為64Hz 。

所有其他參數(shù)和跳線連接保持一樣。有時候,中斷服務(wù)程序是很小的,這樣它就能駐留在用于它的輸入向量的4 個字節(jié)空間。

步驟2:修改代碼。?刪除main.c 中的中斷句柄。創(chuàng)建全局單字節(jié)變量bCount 。?刪除使能ENSWINT 的代碼。

刪除強(qiáng)制一個中斷的代碼。

打開boot.tpl ,添加匯編代碼到休眠定時器中斷向量位置,用于減這個新的變量

(確保保留reti)。練習(xí)2G-1 :這個中斷句柄占用多少個字節(jié)?

在控制循環(huán)中添加代碼:

— 打開所有的四個燈。

—設(shè)置bCount 為255 。

—等待bCount 為0。

—關(guān)閉LED4 。

—設(shè)置bCount 為192 。

—等待bCount 為0。

—關(guān)閉LED3 。

—設(shè)置bCount 為128 。

—等待bCount 為0。

—關(guān)閉LED2 。

—設(shè)置bCount 為64。

—等待bCount 為0。

—關(guān)閉LED1 。

—設(shè)置bCount 為32。

—等待bCount 為0。練習(xí)2G-2 :輸出行為將如何??重新生成應(yīng)用程序,重新建立工程,下載到Eval1 板子,并運(yùn)行。練習(xí)2G-3 :真正的操作和預(yù)測的一樣嗎?


上一頁 1 2 3 4 下一頁

評論


相關(guān)推薦

技術(shù)專區(qū)

關(guān)閉