音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 91|高清无码免费观看欧美日韩|韩国一区二区三区黄色录像|美女亚洲加勒比在线|亚洲综合网 开心五月|7x成人在线入口|成人网站免费日韩毛片区|国产黄片?一级?二级?三级

登錄 免費(fèi)注冊(cè) 首頁(yè) | 行業(yè)黑名單 | 幫助
維庫(kù)電子市場(chǎng)網(wǎng)
技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測(cè)控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng)
驅(qū)動(dòng)編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機(jī) | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計(jì) | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe

C語(yǔ)言的疑惑(PICC18)

作者:hzh 欄目:單片機(jī)
C語(yǔ)言的疑惑(PICC18)
程序1:
void main(void)
{
    CHAR cmd = 0, x = 0;
    cmd = 0x40;    //問(wèn)題就在這地方
    。。。。
}

程序2:
    CHAR cmd = 0, x = 0;
void main(void)
{
    cmd = 0x40;    //問(wèn)題就在這地方
    。。。。
}
程序1怎么看我都不覺(jué)得有問(wèn)題,可結(jié)果卻是 cmd = 0x40 過(guò)后,cmd的值不是0x40,有時(shí)是個(gè)0x90,有時(shí)是個(gè)0x22,不定,奇怪。。。但是換成程序2后,就是對(duì)的了,怎么回事呀,急盼回復(fù)?!

我用的是PICC18,PIC18F452,icd2。

頭一次不用匯編寫程序,沒(méi)想到剛開(kāi)頭就。。。。哎~~~


2樓: >>參與討論
netscaner
不解
 

* - 本貼最后修改時(shí)間:2006-6-28 22:27:29 修改者:netscaner

3樓: >>參與討論
computer00
應(yīng)該是cmd被優(yōu)化掉了。
 
4樓: >>參與討論
艾森豪威爾
什么編譯器,這么隨便就優(yōu)化掉局部變量?
 

* - 本貼最后修改時(shí)間:2006-6-29 12:40:02 修改者:艾森豪威爾

5樓: >>參與討論
computer00
如果你后面沒(méi)用到cmd,被優(yōu)化掉很正常啊。
 
6樓: >>參與討論
frank95
不解
肯定是其他地方用了,所以出現(xiàn)錯(cuò)誤

7樓: >>參與討論
hzh
我在 PIC 單片機(jī)做了進(jìn)一步說(shuō)明。
希望朋友們多幫忙,做個(gè)東西不容易呀~~~
謝謝啦。

8樓: >>參與討論
jx119
應(yīng)該是全局變量與局部變量之分
 
9樓: >>參與討論
yuppie
主程序中還有用到cmd的嗎?show 一下。
 
10樓: >>參與討論
2shift
同意樓上!
 
11樓: >>參與討論
kingsr
^_^
全貼出來(lái)看看

12樓: >>參與討論
hzh
幫幫忙呀,做個(gè)東西不容易呀~~
為了驗(yàn)證我的想法,我把程序簡(jiǎn)化到了如此地步,
其余的內(nèi)容全被我注釋掉了,picc中的C Compiler 優(yōu)化級(jí)別為0。

程序1:
#include <pic18.h>

void WriteCmd(CHAR cmd);

void main(void)
{
    CHAR cmd = 0, x = 0;
    cmd = 0x40;    //問(wèn)題就在這地方
    while(1)
    {
     asm("nop");
     WriteCmd(cmd);
     }  
}

void WriteCmd(CHAR x)
{
//////
}

////////////////////////
程序2只是將  CHAR cmd = 0, x = 0; 移到了main()之外做了全局變量。

程序1,cmd賦值失敗,cmd的值不是0x40;
程序2運(yùn)行后,cmd的值就是0x40;

以上的結(jié)論是用ICD2調(diào)試時(shí)的結(jié)果。
另外,Simulator中,都是正確的。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
請(qǐng)問(wèn)大家4x4矩陣鍵盤掃描兩個(gè)按鍵同時(shí)按下的程序應(yīng)該如何編寫
請(qǐng)問(wèn)6M晶振應(yīng)該匹配多大的電容?
測(cè)量壓力,該選哪種單片機(jī)開(kāi)發(fā)板?請(qǐng)推薦
C51求助使用浮點(diǎn)數(shù)總是有警告
菜鳥(niǎo)求助匯編高手
免費(fèi)注冊(cè)為維庫(kù)電子開(kāi)發(fā)網(wǎng)會(huì)員,參與電子工程師社區(qū)討論,點(diǎn)此進(jìn)入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號(hào)