• slider image 442
  • slider image 483
  • slider image 484
  • slider image 485
  • slider image 486
  • slider image 487
:::


Browsing this Thread:   1 Anonymous Users






Re: BANK1變數定義問題
#4
初級會員
初級會員


查看用戶資訊
Dear jubel,

完全了解你的心情了,我也有同感。
例如 Keil uV2 環境底下有 Symbol Window. 可以輕易了解變數位置。但是 MPLAB IDE 底下獨缺此 Window。

*************************************
Hi!!! 版主 可否 代悠悠眾生反應一下。
*************************************

發表於: 2005/10/12 13:06
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: BANK1變數定義問題
#3
資深會員
資深會員


查看用戶資訊
先謝謝你的回答
我本來也是用 res 跟 cblock 的方式相對定址
但發現有個缺點...

當我用ICD2除錯
要看某個變數的值時
我不知道他擺在哪裡...
必須一個一個算才知道他實際位址
先算出位址才能用WATCH視窗觀看其值變化
兩百多個變數慢慢算位址實在是很麻煩
而如果把要看的變數擺在前面的位址
就必須重新編譯程式再燒錄一次

在單一檔案的程式可以直接打變數名稱
WATCH就會找到位址並顯示其值
我不知道是不是因為我用多檔連結方式寫程式
我在WATCH中打變數名稱他都找不到
所以只能用實際位址的方式看值

而如果如你範例所寫用註解寫實際位址
那我不如乾脆直接定址就好了...
所以我現在就又改回直接定址了
位址在哪一清二楚
這樣也清楚變數是否已經超過BANK0

代理商的FAE跟我說我這樣定址在BANK1是對的
等程式改完後再實際實驗看看能不能用吧~

發表於: 2005/10/12 11:16
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: BANK1變數定義問題
#2
初級會員
初級會員


查看用戶資訊
Dear Jubel,
您的問題晾了很幾天了,我試著回答一下吧!
1. PIC系列的Memory Banking是user要自理且要很注意的。
2. 在MPLAB IDE下,“Help” -> “Topics” -> “MPASM assembler” -> “索引” -> “Bank Selecting”可以找到以下範例:
group1 udata 0x20 ;group1 data stored at locations
;starting at 0x20 (bank 0).
group1_var1 res 1 ;group1_var1 located at 0x20.
group1_var2 res 1 ;group1_var2 located at 0x21.
group2 udata 0xA0 ;group2 data stored at locations
;starting at 0xA0 (bank 1)
group2_var1 res 1
group2_var2 res 1
RST CODE 0x0 ;The code section named RST
;is placed at program memory
;location 0x0. The next two
;instructions are placed in
;code section RST.
pagesel start ;Jumps to the location labelled
goto start ;'start'.
PGM CODE ;This is the begining of the
;code section named PGM. It is
;a relocatable code section
;since no absolute address is
;given along with directive CODE.
start
banksel group1_var1 ;This directive generates code
;to set/clear bank select bits
;RP0 & RP1 of STATUS register
;depending upon the address of
;group1_var1.
clrf group1_var1
clrf group1_var2
banksel group2_var1 ;This directive generates code
;to set/clear bank select bits
;RP0 & RP1 of STATUS register
;depending upon the address of
;group2_var1.
clrf group2_var1
clrf group2_var2
goto $ ;Go to current line (loop here)
end
3. udata-res提供relocatable 定址方式。這與您的絕對定址不同。
4. 您似乎比較喜歡絕對定址?除非有絕對必要,建議您培養使用relocatable 定址的習慣,程式的可攜性較佳。

發表於: 2005/10/11 23:04
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


BANK1變數定義問題
#1
資深會員
資深會員


查看用戶資訊
使用PIC18F8621
第一次變數多到BANK0放不下...
以前變數少的時候
我都是使用
IIC_DATA_0         EQU      20H        ;數值資料0
IIC_DATA_1         EQU      21H        
;數值資料1
IIC_DATA_2         EQU      22H        
;數值資料2

這種方式編排變數位址
有時是使用cblock跟endc 方式擺放
剛剛算了一算目前變數已經超過256
而且持續增加中...

目前是打算把一些四則運算用的變數放到bank1
要運算時切換過去,運算完再切回bank0
數值傳遞用16位元定址不必切bank的MOVFF指令

我想請問的是
我要把變數編在BANK1的話
那我是要寫成這樣嗎?
IIC_DATA_0         EQU      0120H        ;數值資料0
IIC_DATA_1         EQU      0121H        
;數值資料1
IIC_DATA_2         EQU      0122H        
;數值資料2

把變數位址寫成16位元就可以了嗎?
還是說有其他設定方式?

另外若我用的是CBLOCK方式編排
如果超過256個的話他會不會自動編到下一個BANK去?

只玩過PIC18系列
所以第一次遇到BANK切換
希望各位前輩指點
謝謝^^

發表於: 2005/10/8 14:52
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部







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.

[進階搜尋]


:::

Microchip連結

https://www.facebook.com/microchiptechnologytaiwan/
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=13
https://mu.microchip.com/page/tmu
http://elearning.microchip.com.tw/modules/tad_link/index.php?cate_sn=1
https://page.microchip.com/APAC-PrefCenters-TW.html
http://www.microchip.com/
http://www.microchip.com/treelink
http://www.microchipdirect.com/
http://www.microchip.com.cn/newcommunity/index.php?m=Video&a=index&id=103
http://www.microchip.com.tw/modules/tad_uploader/index.php?of_cat_sn=2
http://www.microchip.com.tw/Data_CD/eLearning/index.html
http://www.microchip.com.tw/RTC/RTC_DVD/
https://www.microchip.com/development-tools/
https://www.youtube.com/user/MicrochipTechnology
[ more... ]

教育訓練中心

!開發工具購買
辦法說明 [業界客戶] [教育單位]
----------------------------------
!校園樣品申請
辦法說明 [教師資格] [學生資格]
----------------------------------