Browsing this Thread:
1 Anonymous Users
|
我用的PIC18F4431+C18,请教有关“数据存储器和中断现场保护”的问题,谢谢
|
|
新會員
Joined
: 2007/11/5 14:03 最後登入時間
: 2008/12/22 15:21
Group:
註冊會員
Level : 1 HP : 0 / 18 MP : 2 / 886 EXP : 73
|
1。数据存储器 在我的程序中,我定义了300多个全局变量,4431有768字节的SRAM,原则上应该没有超范围。 但看了4431的手册后,数据存储区分为0,1,2三个区,每个区为256个字节,由寄存器BSR来控制。 我的程序中没有对BSR进行定义。
请问: 是不是我定义的300多个全局变量是由编译器来自动分配 区域的吗?如果不是,我怎么处理?
2。中断现场保护 我是这么写的,对吗? #pragma code InterruptVectorHigh = 0x08 void InterruptVectorHigh(void) { _asm MOVWF W_TEMP,0 MOVFF STATUS,STATUS_TEMP MOVFF BSR,BSR_TEMP goto InterruptHandlerHigh _endasm }
#pragma code #pragma interrupt InterruptHandlerHigh void InterruptHandlerHigh () { // 中断处理 _asm MOVFF BSR_TEMP,BSR MOVFF STATUS_TEMP,STATUS movf W_TEMP,0,0 _endasm
}
發表於: 2007/12/12 12:46
|
|
|
Re: 我用的PIC18F4431+C18,请教有关“数据存储器和中断现场保护”的问题,谢谢
|
|
版主
Joined
: 2004/4/30 10:53 最後登入時間
: 2021/11/30 18:11
From CAE, Microchip
Group:
站務管理者 註冊會員
Level : 75 HP : 744 / 1861 MP : 5367 / 108717 EXP : 45
|
1. 用 C18 寫的話,除了宣告在 Access Bank 的變數要特別處裡,其他在一般RAM 的變數 C18 都會自行處理。
2. C18 處理中段方式,context 會自動處理。詳細的說明請參考 W401 C18 Workshop 第五章的說明,資料可以在左邊檔案下載裡找到。
發表於: 2007/12/12 13:48
|
|
You can view topic.
你 不可以 發起新主題
You cannot reply to posts.
You cannot edit your posts.
You cannot delete your posts.
You cannot add new polls.
You cannot vote in polls.
You cannot attach files to posts.
You cannot post without approval.
You cannot use topic type.
You cannot use HTML syntax.
You cannot use signature.
You cannot create PDF files.
You cannot get print page.