想請教下,飛思卡爾9s12xs128的中斷宣告是不是有多種方式的

2022-12-06 06:11:30 字數 3471 閱讀 4771

1樓:

定義中斷的方式有兩種,

第一種interrupt void pth_inter(void) //pth_inter 是中斷函式名,這個可以任意取

這種方式需要在project.prm檔案中將這個函式名與中斷向量對應上。

如在prm檔案處寫上"vector address 0xffe8 pth_inter" (0xffe8是中斷向量地址,在這只是舉個例子),也可以寫成「vector vectornumber_vtimch7 pth_inter」 (vectornumber_vtimch7是中斷向量號)

第二種#pragma code_seg __near_seg non_banked //中斷函式置於非分頁區內

interrupt vectornumber_vtimch7 void icu_ch7int(void)

#pragma code_seg default //後續**置於預設區域內

我一般第二種方式宣告中斷函式,這樣可讀性和可移植性都較好。

由於飛思卡爾16位微控制器的中斷向量是16位,所以中斷函式只有被置於非分頁區內才能被定址到,這就是第一行的作用。

第二行中「vectornumber_vtimch7」是中斷號,它是由檔案「mc9s12xs128.h」中定義的巨集,這個中斷號在它的技術手冊中找到,但是我建議你採用這種巨集的形式,因為這個巨集不容易出錯,可讀性較高,比如「vectornumber_vtimch7」即為定時器(tim)通道7(ch7)所對應的中斷號。中斷函式名「icu_ch7int」可任意取,沒有影響。

2樓:出群

類似 void interrupt 24 speedmeasure()

void interrupt 中斷向量 函式名字 (void)中斷向量是個數字 用#define 申明的也可以用後面的函式名字 自己隨便寫 和一般的函式一樣 只是前面加 'interrupt 中斷向量號'

s12xs128飛思卡爾有那幾種中斷方式,每個中斷的功能說明?

3樓:

全部中斷列表在datasheet的interrupttable中列出s12的中斷是不可修改優先順序的,所以每個中斷有確定的優先順序和序號中斷的方式如果從產生來說,分為這樣幾種:

1、reset復位中斷

2、cpu執行中斷(比如非法指令、看門狗復位)3、軟中斷(swi指令引起)

4、外部觸發中斷(比如irq xirq)

5、外設事件中斷(比如定時器、sci通訊、鍵盤等等)

飛思卡爾mc9s12xs128微控制器 外部中斷有哪些 分別對應哪些引腳?

4樓:小號很好使

8個外部中斷,portt的8個口都是

5樓:

t口是定時器和增強型外部中斷

此外,還有h口,j口,p口都是普通外部中斷口。

飛思卡爾微控制器mc9s12xs128的中斷週期定時器的關閉問題

6樓:匿名使用者

是在做飛思卡爾

智慧車麼,可以去飛思卡爾論壇問

說一下我的理解:

我以前也用過這個晶片,有一次是用它做超聲波測距,要用輸入捕捉來測高電平持續時間,就用了裡面的一個計時器來計時高電平持續時間,記得當時在datasheet裡看到這樣一句話:晶片內部的時鐘的值是不能夠被改變的,就是read-only。所以使能關閉可能也只是關閉中斷,溢位時不會中斷,而不是關閉計時器的工作

飛思卡爾9s12系列 irq中斷中怎麼將中斷和pe口關聯起來 意思就是pex口為高電平時觸發中斷

7樓:

主函式中設定狀態:

irqcr = 0xc0; //bit7(irqe) 0-低電平觸發 1-下降沿觸發

//bit6(irqen) 1-中斷時使能 0-中斷禁止中斷函式:

#pragma code_seg __near_seg non_banked

void interrupt 6 porte_pe1_isr (void)

#pragma code_seg default

飛思卡爾xs128 外部中斷的中斷向量問題

8樓:匿名使用者

#pragma code_seg __near_seg non_banked //中斷函式置於非分頁區內

void interrupt vectornumber_vporth porth_isr(void)

else if(pifh_pifh1)

}#pragma code_seg default如上述,在權中斷中,用軟體查詢是哪個中斷源引起的(在此僅以ph0和ph1為例)

9樓:匿名使用者

入中斷後,用軟體查詢這個中斷源所有引腳電平。

飛思卡爾mc9s12xs128微控制器只有一個脈衝累加器,如果想要對兩路脈衝訊號進行累加(測速)有什麼好方法呢?

10樓:楠林笑笑生

方法1:使用數字模擬開關,或輸入緩衝器,見下圖。取樣的時候通過兩個io口選擇需要取樣的編碼器,讓對應的測速脈衝輸入到xs128 pt7口。

io口的切換頻率決定了你取樣的頻率,例如0.5ms切換一次。那麼單個編碼器的取樣速率就是1ms,相當於1khz的取樣的頻率,對於電機控制來說應該是足夠了。

方法2:採用外部計數器。例如使用級聯二進位制計數器,兩個編碼器同時計數,xs128只用通過io口讀入資料即可,並可以實現同時計數,同時清零,只是增加了硬體負擔。

常用的外部計數器 cd4520

其實我也在糾結這個問題

因為我把pwm67被我級聯控制電機了 就是說pt7這個口被我佔用了。。。問學長說 還可以用中斷的方法測速

11樓:anyway中國

1、你說的脈衝累加器一般稱計數器/定時器的話。一個計數器測量兩路脈衝訊號,原則上是可以的。

2、計數器工作在定時器方式,迴圈計數,不受任何一路脈衝訊號的控制。你可以採用兩個外部中斷分別響應兩路脈衝訊號下降沿或上升沿,在每個中斷服務程式中,分別讀取同一個定時器的引數,連續兩次讀取引數的差值就是該脈衝的週期。

3、如果精度要求較高,最好的方法是採用計數器的脈衝捕獲方式,當然,這樣就只能做一路了。

12樓:匿名使用者

外接另一路累加器,用ttl晶片。

13樓:匿名使用者

一路用累加器,另一路可以使用一路輸入捕捉通道來做。

飛思卡爾微控制器mc9s12xs128mal和mc9s12xs128有什麼區別

14樓:實驗的森林

mal是112管腳 mk是80管腳 少了4個ad口和一些io口 主要功能沒少 80管腳的佈線比較簡單

15樓:

mal代表封裝是112腳的

我想請教下各位大神電腦問題,我想請教下各位大神電腦問題

頁遊?頁遊不需要顯示卡啊。你隨便下個端遊玩玩呢,例如cf或者cs go,如果這兩遊戲都不卡的話,那估計是網頁問題,不是你電腦配置問題,你這配置玩遊戲沒問題的 事實上,你bai分了4個邏輯區du,但只格式化了zhi兩個,所以只 你這個配置很好,玩大型的端遊的沒什麼問題,你玩這個頁遊不版流暢可能是有如下...

飛思卡爾微控制器中IC和OC是什麼意思

ic是輸入捕捉,對於管腳來說是輸入,可以設定為上升沿捕捉 下降沿捕捉 跳版變沿捕捉 上升沿 權 下降沿都捕捉 通常我們用這個來計算輸入脈衝的週期和佔空比。以計算脈衝的週期為例,先設定定時器的時鐘,然後設定上升沿捕捉,並設定捕捉中斷。當脈衝上升沿到來時,進入中斷,在中斷中讀取當前定時器時鐘的讀數,減去...

想請教下繼承方面的問題,請教遺產繼承方面的問題

ps 目前房子正在辦手續階段,她丈夫反對買房,但買房的資金完全來自我母親個人,稍有不足的部分也是她找自己的朋友借的,另外我也會支援小部分,所以母親表示不會理會她現任丈夫的意見。之所以我有這方面的考慮是因為我會一直在外地發展,房子弄好了之後將由我母親居住保管,如果她的丈夫願意跟母親一起住進去我也沒意見...