• slider image 442
  • slider image 497
  • slider image 498
  • slider image 499
  • slider image 500
  • slider image 502
:::


Browsing this Thread:   1 Anonymous Users






Re: 如果要將副程式分開放在各別檔案時,該怎麼分配?
#4
版主
版主


查看用戶資訊
這裡有一些類似的PAGE設定與PC跳去執行的問題討論,
http://www.microchip.com.tw/modules/n ... php?topic_id=2480&forum=7

基本上要注意PAGE的間格問題,可以用強定位址的方式來解決這個問題。

ORG 0x1000

Section _Name CODE 0X1000

發表於: 2006/6/26 13:36
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 如果要將副程式分開放在各別檔案時,該怎麼分配?
#3
初級會員
初級會員


查看用戶資訊
感謝,不過我沒註明清楚,真是不好意思,我使用的是pic16f876a
寫的方式是使用組語
我倒不是問題出在暫存器要用的記憶體分配,而是程式記憶體寫法的問題上,程式為了做判斷,所以利用pcl跳去執行下面的幾行
問題是在,當程式愈來愈大時,已經超過ff~100h的時候會發生跳頁的問題,所以我把副程式分開放在可以用的程式記憶體空間,而在主程式時已經使用Pclath把頁數跳開了,即可解決這個問題
但是若我要分開把副程式放在各自的檔案中時,想做成模組化,但是程式可以分開寫入各自的檔案嗎?而不是只有寫變數,對於主程式關聯到的副程式,不用去分配位址嗎?不然到時又超過一頁怎麼辦?因為沒辦法自己判斷現在的程式已經跑到了第幾頁,若沒在使用pcl前更改Pclath則就會開始跳錯頁了,是不是我每次在整個complier時,我都要很注意模組化程式又會跳錯頁的問題?

發表於: 2006/6/23 23:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 如果要將副程式分開放在各別檔案時,該怎麼分配?
#2
版主
版主


查看用戶資訊
1. 使用 Include 將原始程式加入的方式還是屬於 Absolute 的語法,它無須使用到Linker來排位址,所以用此方式是不太適合寫較大的程式,也不符合程式模組化的要求,如果要達到各個程式模組的獨立性是要考慮採用Relocatable語法來寫程式,透過Linker來安排程式及變數的位址。

2. 你的問題說起來還真的有點長,PIC16 和 PIC18 有不同的方式,Hi-Tech PICC 和 C18 的寫法也不一樣,組合起來就有四種最好還是打的電話到技術服務專線吧 ! 0800-717-718

3. 一般如果使用PIC18F 我們會將Global variable及中斷副程式所使用到的變數等宣告在 Access Bank, PIC16F87x則宣告在 Share Bank 裡,以PIC16Fxxx為例: 程式之間要使用到的共用變數(RAM)最好統一宣告在 BANK0,其它程式再用 Extern 去接收這個由別人宣告過的變數,不管這些 Global 變數被LINKER排定到那個位址,有使用的這些Global變數的模組程式最好都加入Banksel這個指令來做BANK的自動切換,這樣是比較不容易出錯的。

發表於: 2006/6/20 10:57
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


如果要將副程式分開放在各別檔案時,該怎麼分配?
#1
初級會員
初級會員


查看用戶資訊
假如我想把副程式一個一個寫好各別放在其檔案中,除了主檔要去INCLUDE加入他之外,對於記憶體使用的分配,須注意到要如何分配呢?
是否也要將記憶體分配一併寫入子程式裡,如果是的話,假設別的不相干的案子要共同使用這些子程式的話,不就要很注意記憶體的分配才能使用它了?
難道不能自動分配,以免GOTO或CALL或者是有用到PCL時以免它跳錯,而且子程式與子程式也不會位址相衝突?

發表於: 2006/6/19 2:22
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... ]

教育訓練中心

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