請問各位編譯時會使用 -opa- 的功能嗎
|
||||
---|---|---|---|---|
新會員
|
刪除 -opa- 後,C18 會對組語進行邏輯上的最佳化
由於這個方法可以大量減少 Code Size 所以蠻令人心動的 想請問一下有在開發產品的各位 是否有刪除這行指令來執行最佳化呢 或者此種方法會不會有什麼不良的影響或危險呢?? 感謝回答^^
發表於: 2009/2/5 9:33
|
|||
|
Re: PIC 最好用全局变量还是局部变量?
|
||||
---|---|---|---|---|
新會員
|
版主也請順便解答一下我那篇 關於 static 的奇怪問題
被這問題卡住了 ~_~
發表於: 2008/10/30 11:59
|
|||
|
Re: PIC 最好用全局变量还是局部变量?
|
||||
---|---|---|---|---|
新會員
|
區域變數應該是放在軟體 stack 裡面吧 ?
操作軟體 statck 的變數需要較多的指令碼 這是我猜測 會造成 code size 較大的原因 但是昨天我為了減少 code size 把 函式參數 及 區域變數 通通改為 static 宣告,卻出現很奇怪的問題 詳情請看那邊 "關於 static 的奇怪問題" 也請知道的高手幫我解答一下 ~
發表於: 2008/10/30 8:58
|
|||
|
關於 static 的怪問題請教
|
||||
---|---|---|---|---|
新會員
|
使用 PIC18F6620
我把主要的問題簡化成下面幾行程式 ======================== signed long int A; //全域變數 void Function(static signed long int B) { A -= B; } ========================= 執行後,發現 A 的值不符合預期的計算結果,爆掉了 但是將 A -= B 改成 A = A - B 之後 卻可以正常運作 在我的理解裡這兩行是一樣的意思 想請問問題到底出在哪邊 ? 至於參數用 static 的原因是希望能省下一些 program memory 因為目前程式空間吃緊到必須用這種方法減低 Code Size 感謝指導~
發表於: 2008/10/29 18:08
|
|||
|
watchdog 喚醒 sleep 的計數問題
|
||||
---|---|---|---|---|
新會員
|
由於小弟目前的 PIC18F6620 沒有給 Timer1 外接震盪器
PortB的中斷方式又不可行 目前比較可行的 Sleep 方式只剩下 watchdog 但是目前所知的 watchdog 設定只有 1: 128 的 後除 想請問一下若要設定較長時間的喚醒計數 以 WDT 為基礎的條件下 有什麼好的方法嗎? 感謝指導~
發表於: 2008/10/20 16:39
|
|||
|
PIC18F6620 Sleep模式喚醒的方法
|
||||
---|---|---|---|---|
新會員
|
小弟目前在測試 Sleep Mode這部分
當程式執行到 Sleep() 後就進入休眠模式 但目前我卻無法成功的用中斷將他喚醒 看起來是連中斷都沒進去 想請問一下 如果要用 PORTB的中斷將 MCU喚醒 有哪些 Register的設定是需要注意的 感謝指導~
發表於: 2008/10/20 11:54
|
|||
|
請問 USART ERRO 出現時,是否還會進入 USART中斷?
|
||||
---|---|---|---|---|
新會員
|
使用晶片 PIC18F6620
有個小問題想請教 因為目前我們將 清除 OERR( Reset CREN )的動作放在USART中斷處理 想請問一下 如果出現 OERR 和 FERR兩個旗標 沒清除 後面資料再進來時 USART還會進入中斷嗎? 也就是把清除旗標的動作寫在中斷中可不可行呢? 感謝解答~
發表於: 2008/9/18 8:42
|
|||
|
Re: 請問如何處理 15位整數 及 關於 float 的限制
|
||||
---|---|---|---|---|
新會員
|
15位數....
要乘除 = =a.. 看來難度很大......而且不能用PC 這是奇怪客戶的奇怪要求...
發表於: 2008/7/30 14:12
|
|||
|
Re: 請問如何處理 15位整數 及 關於 float 的限制
|
||||
---|---|---|---|---|
新會員
|
就是一個 很大的 15位整數 囉 ~_~
123456789012345 一百多兆 去做運算這樣 ~
發表於: 2008/7/30 11:42
|
|||
|