音影先锋亚洲天堂网|电影世界尽头的爱完整版播放|国产 熟女 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

C51編程:變量問(wèn)題?

作者:lhzw2001 欄目:單片機(jī)
C51編程:變量問(wèn)題。
以前都沒(méi)發(fā)生的現(xiàn)像,今天再調(diào)時(shí)發(fā)現(xiàn),請(qǐng)問(wèn)為何?
如下測(cè)試程序:
用keil c51 (7.5版本) ,發(fā)現(xiàn),軟件仿真時(shí),count一直變(定時(shí)器還沒(méi)中斷)執(zhí)行了
delay后,它變化了,這是為何,如果不在中斷中引用count則沒(méi)事,請(qǐng)問(wèn)如何解決呢,我以
前都是這么用的,都沒(méi)出錯(cuò),這次就不行了?

#include "reg52.h"
static uint idata count ; /////********************
void delay(uint idata i);
void main(void)
{    count=1;    
   TMOD=0x01;          
  TH0=(65536-1000)/256;
  TL0=(65536-1000)%256;
EA=1;
TR0=1;
ET0=1;LED7=1;
delay(100);     // count被改變了?
   while(1)
        {     LED7=~LED7;
              delay(500);         }           
}
void clk(void) interrupt 1 //using 1  去不去掉都一樣
{
count++;  
TR0=0;
TH0=(65536-1000)/256;
TL0=(65536-1000)%256;

if(count==500)
           {count=0;  LED3=~LED3;}   //測(cè)試一下是否能正常進(jìn)入中斷
TR0=1;
}
void delay(uint idata i)
{ uchar idata j;
while (i--)
{for (j=0;j<125;j++);}
}



2樓: >>參與討論
computer00
你在程序里面用一下它,它就不會(huì)變了。
例如:

  while(1)
  {
   LED7=~LED7;
   delay(500);
   P0=count;
  }   

3樓: >>參與討論
xc_cz
中斷里不是改了嗎?
 
4樓: >>參與討論
xzhenggen
不想改變就不要用STATIC變量類(lèi)型.
 
5樓: >>參與討論
lhzw2001
我重裝了一下keil ,問(wèn)題解決了,感謝各位關(guān)注。
 
6樓: >>參與討論
農(nóng)民講習(xí)所
會(huì)被改變,概率不小
將count該為uchar就不會(huì)被改變,而uint以上類(lèi)型會(huì)。至于為什么,你可以先想想在中斷的瞬間可能發(fā)生的事情,在匯編代碼中看。

7樓: >>參與討論
awey
computer00的意思是不是count被編譯器優(yōu)化掉了?
 
8樓: >>參與討論
平常人
加上一個(gè)volatile試試
關(guān)于volatile的討論已經(jīng)很多了,我就不在此畫(huà)蛇添足啦。

9樓: >>參與討論
computer00
是啊,有時(shí)編譯器會(huì)幫你做一些優(yōu)化,特別是后面不使用的變量
不過(guò)全局變量在keil中似乎不怎么會(huì)優(yōu)化掉的。

參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
我自己焊接的用單片機(jī)向PC發(fā)送數(shù)據(jù)的232接口電路到底有沒(méi)有毛病
請(qǐng)教串口接收問(wèn)題
串口為啥只收到兩個(gè)0,我想收到0-7
求助 哪位有atmega128的protel封裝啊
那位大俠知道帶地址選擇的IIC控制的電子音量控制芯片
免費(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)