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

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

關(guān)于定時器變量與主程序循環(huán)while。

作者:liaosicong 欄目:ARM技術(shù)
關(guān)于定時器變量與主程序循環(huán)while。
主程序中定義了一個秒變量:
uint8 sec,min,hour,sec_bz;
sec=0;
while(sec<2);
while(1)
{
   if(sec_bz==1)
   {
      sec_bz=0;
      //LED亮滅控制;
   }
}
程序執(zhí)行后,如果把while(sec<2);這句去掉,一切正常,如果加上這句,程序一直停在這邊,請問為什么?定時器也有工作啊,這個從sec_bz可以看的出來?定時器程序?qū)懺趖arget.c里邊,具體如下:

在target.c引用了了主程序的幾個變量,啟動定時器T0,程序如下:
extern uint8 sec,min,hour,sec_bz,count;

        void __irq IRQ_Exception(void)
{

    count++;
    if(count==100)
    {
        WDFEED = 0xAA;    //feed WDT
        WDFEED = 0x55;    
        count=0;
        sec++;
        sec_bz = 1;        
        if(sec==60)
        {
            min++;
            if(min==60)
            {
                min=0;            
                hour++;
            }
        }
    }
}


2樓: >>參與討論
zlgARM
re:
建議:
1。 將sec變量加上修飾符volatile,防止優(yōu)化;
2。 IRQ中斷程序建議放在主程序中,同時還要對VIC進行設(shè)置。

3樓: >>參與討論
liaosicong
謝謝
加上volatile或放回主程序都可以。

4樓: >>參與討論
liaosicong
疑問:
還有,為什么例程把他們放在target.c里邊呢?

5樓: >>參與討論
guxiang
死循環(huán)
程序執(zhí)行到while(sec<2);語句時就因條件滿足進入死循環(huán),不可能往下執(zhí)行。建議改成:
uint8 sec,min,hour,sec_bz;
sec=0;
while(sec<2)
{
sec++;
}
sec=0;
while(1)
{
   if(sec_bz==1)
   {
      sec_bz=0;
      //LED亮滅控制;
   }
}





參與討論
昵稱:
討論內(nèi)容:
 
 
相關(guān)帖子
I2C狀態(tài)字
請教串口接收問題
關(guān)于程序的變量的定義
請教周工!
大家誰有LPC2212.H文件
免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入


Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號