Re: 關於c18 程式內切bank 的問題
|
||||
---|---|---|---|---|
版主
|
你定義的變數裡是否有陣列,如有有的話先將陣列移到單獨的一個 BANK 去。
0x300與0x400 不同 BANK 的變數問題,要試一下是不是會有此問題。
發表於: 2005/9/5 17:45
|
|||
|
如何將一個浮點數存到eeprom裡?
|
||||
---|---|---|---|---|
高級會員
|
各位前輩:
請問如何將一個浮點數存到eeprom裡?? 又應該如何將它讀出 ?? 我現在只知道用 union 的方式, 但如果有很多浮點數要存, 那不是要打很多 union 嗎?? 祝: 好 Ming....!!
發表於: 2005/9/5 17:25
|
|||
|
Re: 關於c18 程式內切bank 的問題
|
||||
---|---|---|---|---|
高級會員
|
版主您好:
如果變數真的不在同一個bank裡面的話, 有什麼方法能解決呢 ?? 還是一定要放在同一個bank?? 實在對 #pragma udata 有點不懂.. 如果程式在定義變數時, 超出一個bank的範圍, c編譯器會告訴我們超出範圍. 如果改 .lkr 檔, 將一個section變大的話, "超出範圍"的錯誤訊息會消失. 可是這樣一來, 就會有變數在不同bank的情形發生. 我定義一個 udata 在 0x300 然後裡面的變數從 0x300 一直放到 0x400 如果我在 function 裡, 先用到 0x400 位罝的變數, 然後在同一個 function 又用到 0x300 的變數, 程式會處理的不是 0x300 變數, 而是 0x400.. C語言真的很好用, 可是有問題發生, 好難處理....
發表於: 2005/9/5 17:21
|
|||
|
Re: 關於c18 程式內切bank 的問題
|
||||
---|---|---|---|---|
版主
|
這問題應該是存取另外一個 C 程式,將變數宣告程 EXTERN 時會遇到,或你有宣告大的陣列時會遇到。通常藉由 #Progma udata 的指定就可以解決此變數擺放在 BANK 問題。
實際使用 C18 時可以不用考慮 BANK 的切換問題,Linker 會安排一切,使用著不用費心做 BANK 的切換。
發表於: 2005/9/5 16:07
|
|||
|
怎麼用C來寫的FW一下下就十幾二十幾K了
|
||||
---|---|---|---|---|
高級會員
|
請教一下
如果我們用C18 Student版的 因為沒有優化~會造成檔案大的很快嗎 因為我發現我寫的FW其實看起來也沒有很多 但32K的ROM看起來一下下就不夠用了 因為還有一些功能還沒寫進去 真是擔心到時程式會擺不下呢
發表於: 2005/9/5 15:58
|
|||
|
Re: 臺灣常用PIC型號
|
||||
---|---|---|---|---|
版主
|
站在 Microchip 的立場上,我無法在此公開的場合回答你的問題,你可以來電詢問,在元件的選用上我只會提供建議而已。
發表於: 2005/9/5 15:36
|
|||
|
Re: 起始位置.....
|
||||
---|---|---|---|---|
資深會員
|
不懂...
是否可以詳細敘述情況跟錯誤訊息 這樣大家才知道如何解決
發表於: 2005/9/5 15:16
|
|||
|
Re: 臺灣常用PIC型號
|
||||
---|---|---|---|---|
資深會員
|
我覺得
你應該是要問你的代理商才對 問他那邊比較多人用的型號是哪些 多人用的話量較多他們的價錢可以壓低 你來這邊問比較不準 因為以後你是要跟他們買而不是跟台灣分公司買
發表於: 2005/9/5 15:14
|
|||
|
關於c18 程式內切bank 的問題
|
||||
---|---|---|---|---|
高級會員
|
各位前輩:
如果有一個變數被放到bank3, 又有一個變數被放到bank 4 的話, 是不是在一個function裡面, 不能同時被存取?? 我看 c18 反組譯出來的程式, function 一開始有一個 movlb 0x03, 也就是這個function裡面第一個被用到的變數所在的bank. 如果這個function裡面, 有一個 bank 4 的變數的話, 程式不會再指到bank 4, 就直接在bank 3處理該記憶位置的值... 請問我應該如何解決這個情況?? 謝謝! 祝: 好 Ming....!!
發表於: 2005/9/5 15:06
|
|||
|