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


Browsing this Thread:   2 Anonymous Users






Re: 使用MPLAB-C18的怪現象,好奇怪哦~
#6
中級會員
中級會員


查看用戶資訊
已更換 MPLAB C18 V2.30 版,但還是無效…
用 Watch window 查看 ABCD 的內容也都對.

目前我的解決方式是將判斷式 if ( ABCD > 150)
改為: if (ABCD > 0x96) 就ok了!

也就是說建議大家以後遇到莫名其妙的問題,在常
數的部份改為十六進制看看吧!

不過這個問題的真正原因,我還是不曉得出在那裡?

PS: 遇到莫名其妙的狀況有時也可加入一行的 Nop();
即可將問題解決。(可能是Compiler 聰明過頭了吧)

發表於: 2004/12/8 11:47
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用MPLAB-C18的怪現象,好奇怪哦~
#5
版主
版主


查看用戶資訊
MPLAB C18 v2.09.10 是很舊的版本,建議換個v2.30吧!

有用 watch window 查看ABCD實際的數值嗎?

發表於: 2004/12/7 12:08
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用MPLAB-C18的怪現象,好奇怪哦~
#4
中級會員
中級會員


查看用戶資訊
08是八進制???
八進制最大不是只到7嗎??以八進制表示十進制的8是不是應該用010呢??

發表於: 2004/12/6 14:48
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


Re: 使用MPLAB-C18的怪現象,好奇怪哦~
#3
中級會員
中級會員


查看用戶資訊
再補充一點堆疊 STACK 還剩很多,只使用了六層…

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


Re: 使用MPLAB-C18的怪現象,好奇怪哦~
#2
中級會員
中級會員


查看用戶資訊
補充一下,我曾經也使用如下方式,但也是無效:

使用 else if

if (XX==0)
{
..........; // 程式
..........; // 程式
}
else if (YY != 0)
{
if (ABCD > 150)
{
Nop();
}
}

PS: 討論區空白的地方無法呈現出來,事實上它是有空白的
例如在{、}、if (ABCD > 150)的前面

發表於: 2004/12/6 11:38
Twitter Facebook Google Plus Linkedin Del.icio.us Digg Reddit Mr. Wong 頂部


使用MPLAB-C18的怪現象,好奇怪哦~
#1
中級會員
中級會員


查看用戶資訊
使用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
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... ]

教育訓練中心

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