Re: [問題] keilc問題
※ 引述《CuckooBoy (阿書)》之銘言:
: 請問想看變數的狀態
: 譬如i=i+1;
: 我想看這列的 ......左邊i的值是多少,要怎麼做呢?
你的問題有點怪,左邊是指i=的i吧?
以c語言的語法,是指i+1-->i,也就是當該行執行完後的值。
因為各家的ICE對於斷點的處理不一定相同,所以比較保險的方式是:
260 i=i+1
261 nop
然後在261行前加上斷點,中斷時去檢查i的值就可以了
當然,如果你不是用ICE的話,那可能是在261行的地方換成輸出指令,將值在某個
port或rs232或其他的方式將資料輸出。
ps.說真的,這裡是asm版,你的問題大多是C的問題,雖然說是單晶片上面的問題,但
主要又不是單晶片的問題,我想會有一些人覺得是不必要的問題也是可以理解的。
又及:你的需求可以去相關的論壇得到更多的幫助,如雷兒電子論壇、51硬派論壇、
大鳥實驗室論壇(名稱可能有錯,但是我以前去過覺得不錯的論壇)。
另外,你在上一篇問說是否可以針對一個位元的存取,在51而且,只有一小個區段的
記憶體可以做位元存取,在keilC中以bdata做為標示。
xdata unsigned char abc;
bdata unsigned char bitbuffer;
bit bit7 = bitbuffer^7;
bit bit6 = bitbuffer^6;
bit bit5 = bitbuffer^5;
bit bit4 = bitbuffer^4;
bit bit3 = bitbuffer^3;
bit bit2 = bitbuffer^2;
bit bit1 = bitbuffer^1;
bit bit0 = bitbuffer^0;
abc = 0x55;
bitbuffer = abc;
P1.1 = bit2;
這樣也可以做到,事實上,你去看keilc對於51.h的宣告,會發現他P0~P3的各位元宣告
是相同的,但不是每種編譯器都是用這種方法宣告,像是arm的c編譯器就是用上幾篇的
結構式宣告完成的。
這主要是因為C原本沒有對位元處理的指令、符號的定義,因此各家編譯器會用一些方法
來支援這部份。
--
我只是個想賺 P 幣的迷途小羔羊
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.59.228.75
推
09/08 20:58, , 1F
09/08 20:58, 1F
→
09/08 20:59, , 2F
09/08 20:59, 2F
推
09/09 22:58, , 3F
09/09 22:58, 3F
→
09/09 22:59, , 4F
09/09 22:59, 4F
→
09/09 22:59, , 5F
09/09 22:59, 5F
→
09/09 23:00, , 6F
09/09 23:00, 6F
→
09/09 23:01, , 7F
09/09 23:01, 7F
→
09/09 23:02, , 8F
09/09 23:02, 8F
討論串 (同標題文章)
ASM 近期熱門文章
PTT數位生活區 即時熱門文章
-4
30