Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
資深會員
|
我也不是真的知道原因是什麼
只是知道 事出必有因 , 再加上碰到一隻死老鼠 .... 真正原因只待那些高手大大有空再來解說了 ......
發表於: 2009/12/15 1:11
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
高級會員
|
謝謝你的幫忙,因為不太懂他提示這個的用意,所以每次跳這個訊息方塊我都直接關掉,原來問題會反應在這個地方,下次我會注意的。
發表於: 2009/12/14 19:34
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
資深會員
|
參照:
注意一下 訊息方塊 ...... 將 XINST DISABLE ..... Attach file: Link only for registered users (0.00 KB) (0.00 KB)
發表於: 2009/12/14 19:18
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
高級會員
|
我又做了一些測試,首先先簡化程式內容,用Watch視窗來監測變數i跟Step Into的綠色小箭頭:
#include<p18f65j50.h> void main(void) { //變數宣告. unsigned int i; //用for迴圈做8次. for(i=0 ; i<8 ; i++) { Nop(); } //做完讓程式停在這裡. while(1); } i不會增加,而且綠色小箭頭完全沒指到Nop()這行就直接跳到while(1)了。 接著我改變了i的資料型態(unsigned char): #include<p18f65j50.h> void main(void) { //變數宣告. unsigned char i; //用for迴圈做8次. for(i=0 ; i<8 ; i++) { Nop(); } //做完讓程式停在這裡. while(1); } 很順利的跑完8次NOP才進入while(1)。 問題至此看起來似乎是解決了,可是我還是很想知道原因,不然擔心自己把錯誤的觀念永遠錯下去,請問有人看的出我的問題出在哪裡嗎?因為我看別人的code使用for迴圈都是直接使用int型態。
發表於: 2009/12/14 19:06
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
高級會員
|
附上檔案及剛剛所提到i超過8的圖片。
Attach file: Link only for registered users (0.00 KB)
發表於: 2009/12/14 17:29
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
版主
|
建議你將程式壓成 ZIP 後送出來,這樣很難猜你的迴圈出了什麼問題。
發表於: 2009/12/14 16:51
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
高級會員
|
我也是怎麼想都會執行到裡面所以才很疑惑,我的確認方式是開啟Debugger使用"MPLAB SIM",然後打開"Watch"與"Simulator
Logic Analyzer",觀察i與RB0~RB6,接著採用Step Into依步一步觀察程式的執行,結果在 for(i=0 ; i<8 ; i++) 停留幾次後就直接跳到 while(1){} 了,另外我依照版主所說的改成 while(1); 居然出現更神奇的現象,i數超過8了居然沒跳出來,我越來越搞不懂要怎麼找出問題了。
發表於: 2009/12/14 16:44
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
資深會員
|
>>大家好,下面是我用for迴圈想做一個簡單的測試,但是程式並不會執行到
>>PORTB = 0xff; >>PORTB = 0x00; >>這兩行就跳出了,我實在想不出原因,想請大家指點一下。 請問你怎麼確認....."程式並不會執到"for裏面的code.... 怎麼看都會執行啊!!! >> //用for迴圈做8次. >> for(i=0 ; i<8 ; i++) 怎麼看都會做八次也!!!
發表於: 2009/12/14 16:33
|
|||
|
Re: C18關於for迴圈的使用
|
||||
---|---|---|---|---|
版主
|
參照:
//做完讓程式停在這裡. 程式要停再這裡一般不是用 : while(1); 或 for ( ; ; ) ;
發表於: 2009/12/14 16:02
|
|||
|