Re: 使用MPLAB-C18的怪現象,好奇怪哦~
|
||||
---|---|---|---|---|
版主
|
MPLAB C18 v2.09.10 是很舊的版本,建議換個v2.30吧!
有用 watch window 查看ABCD實際的數值嗎?
發表於: 2004/12/7 12:08
|
|||
|
Re: 使用MPLAB-C18的怪現象,好奇怪哦~
|
||||
---|---|---|---|---|
中級會員
|
08是八進制???
八進制最大不是只到7嗎??以八進制表示十進制的8是不是應該用010呢??
發表於: 2004/12/6 14:48
|
|||
|
Re: 使用MPLAB-C18的怪現象,好奇怪哦~
|
||||
---|---|---|---|---|
中級會員
|
再補充一點堆疊 STACK 還剩很多,只使用了六層…
發表於: 2004/12/6 12:13
|
|||
|
Re: 使用MPLAB-C18的怪現象,好奇怪哦~
|
||||
---|---|---|---|---|
中級會員
|
補充一下,我曾經也使用如下方式,但也是無效:
使用 else if if (XX==0) { ..........; // 程式 ..........; // 程式 } else if (YY != 0) { if (ABCD > 150) { Nop(); } } PS: 討論區空白的地方無法呈現出來,事實上它是有空白的 例如在{、}、if (ABCD > 150)的前面
發表於: 2004/12/6 11:38
|
|||
|
使用MPLAB-C18的怪現象,好奇怪哦~
|
||||
---|---|---|---|---|
中級會員
|
使用MPLAB-C18的COMPILER時出現了一個怪現象,如下程式
PS: 變數ABCD 初值為200,我是用Typedef來定義自己的別名 方式: typedef unsigned char uchar uchar ABCD=200; 問題程式: if (XX==0) { ..........; // 程式 ..........; // 程式 } else { if (YY != 0) { if (ABCD > 150) { Nop(); } } } 為何在 if (ABCD > 150)這裡我只要加上判斷式,例如 if();while {} ....當一執行到這裡時我的程式會就不知道 跑到那麼去? 但如果不加判斷式 (例如:for()回圈或其它) 這樣就會ok 同時我把uchar ABCD=200; 改為unsigned char ABCD=200; 這樣也會ok… 但我百分之百確定不是變數正負號的關係 因為後來我把 if (ABCD > 150) 改為 if (ABCD > 0X96) 這樣就OK了 (PS:變數宣告還是維持uchar ABCD=200;) 我的結論是MPLAB (C18 Ver2.09) 好像有時會看不懂10進制 的描述…又曾經使用陣列,初值也設定10進制,前面幾個提取 時都正常,到了"08"這個值時,它都會取到為"00",但改16 進制後也就正常了; 有人說"08"是八進制……但至少它也應該取到的值是"8"吧! 怎麼說也不可能是"00" 有誰能夠解釋這種現象的問題嗎?
發表於: 2004/12/6 11:31
|
|||
|