當前位置:編程學習大全網 - 編程軟體 - "#pragma CODE_SEG __NEAR_SEG NON_BANKED"這句有什麽用?

"#pragma CODE_SEG __NEAR_SEG NON_BANKED"這句有什麽用?

飛思卡爾S12單片機?

這句話是將接下來的代碼(壹般是中斷函數)置於非分頁區。請參看我對S12單片機中斷函數的回答。/question/224213298.html

#pragma CODE_SEG __NEAR_SEG NON_BANKED //中斷函數置於非分頁區內

interrupt VectorNumber_Vtimch7 void ICU_Ch7Int(void)

{

TFLG1_C7F = 1; //清中斷標誌位

}

#pragma CODE_SEG DEFAULT //後續代碼置於默認區域內

我壹般是用上述方式聲明中斷函數。

由於飛思卡爾16位單片機的中斷向量是16位,所以中斷函數只有被置於非分頁區內才能被尋址到,這就是第壹行的作用。

第二行中“VectorNumber_Vtimch7”是中斷號,它是由文件“MC9S12XS128.h”中定義的宏,這個中斷號在它的技術手冊中找到,但是我建議妳采用這種宏的形式,因為這個宏不容易出錯,可讀性較高,比如“VectorNumber_Vtimch7”即為定時器(TIM)通道7(CH7)所對應的中斷號。中斷函數名“ICU_Ch7Int”可任意取,沒有影響。

由於單片機內部非分頁區大小有限,非中斷函數壹般置於分頁區內,最後壹行即為此作用。

  • 上一篇:鄂州鐘健長頭葛店之星雙創谷何時交房?
  • 下一篇:DJ打碟到是怎麽弄的
  • copyright 2024編程學習大全網