久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2566|回復(fù): 9
打印 上一主題 下一主題
收起左側(cè)

新手求大神幫看看為什么單片機程序會卡死?

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:626079 發(fā)表于 2020-3-29 22:56 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
本帖最后由 xmfjfhcel 于 2020-3-30 09:30 編輯


咨詢高手大俠,下面這樣作判斷為什么程序會卡死呢?我是想判斷一個狀態(tài)如果連續(xù)出現(xiàn)錯誤50次,就認(rèn)為設(shè)備有問題,如果這50次中哪怕有一次正確的值返回來也認(rèn)為設(shè)備是好的,又從頭開始計數(shù)判斷。
感謝樓下的解答,我把程序改一下,昨晚沒處理好,這樣就清楚了,但是程序我觀察了下,如果返回值為1了, errorchecknum增加了,程序就卡死了。errorchecknum是全局變量。
#include<reg52.h>
unsigned int errorchecknum=0;

unsigned char check()
{...............
               if(checkdata==data)
                 {
                      errorchecknum=0;
                       return 0;
                  }
               else
                 {
                     errorchecknum++;
                     return 1;
                 }
}



void main()
{.................
while(1)
          {         
                check();
                if(errorchecknum==50)
                {
                       //設(shè)備有問題
                 }
            }
}


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復(fù)

使用道具 舉報

沙發(fā)
ID:282850 發(fā)表于 2020-3-30 01:14 | 只看該作者
unsigned char Dartcheck()
{
void check()
這種明顯不對,刪除unsigned char Dartcheck()
第3句改為 unsigned char check()就與return 1和while(1)中的調(diào)用對應(yīng)了
回復(fù)

使用道具 舉報

板凳
ID:235200 發(fā)表于 2020-3-30 01:27 | 只看該作者
errorchecknum是否是全程變量,另外判斷errorchecknum==50,如果設(shè)備真有問題,這只是瞬間存在,所以這一句改為errorchecknum>50
回復(fù)

使用道具 舉報

地板
ID:709172 發(fā)表于 2020-3-30 02:36 | 只看該作者
首先你要確定errorchecknum是否定義為全局volatile易揮發(fā)變量,因為在循環(huán)判斷errorchecknum值時,errorchecknum可能會取緩存值,不會更新,所以需要定義volatile unsigned uint8 errorchecknum。
其次將errorchecknum==50改為errorchecknum >50。
回復(fù)

使用道具 舉報

5#
ID:592807 發(fā)表于 2020-3-30 08:29 | 只看該作者
void check();是什么?第三行,被unsigned char Dartcheck()函數(shù)內(nèi)構(gòu)造函數(shù)?
回復(fù)

使用道具 舉報

6#
ID:626275 發(fā)表于 2020-3-30 08:55 | 只看該作者
是不是沒有定義變量!然后沖突了
回復(fù)

使用道具 舉報

7#
ID:213173 發(fā)表于 2020-3-30 09:15 | 只看該作者
unsigned char errorchecknum;
bit Error;

void check()
{
        if(故障信息為真)
        {
                errorchecknum++;
                if(errorchecknum>=50)
                {
                        errorchecknum=50;
                        Error=1;
                }
        }
        else errorchecknum==0;
}

void main()
{
        while(1)
        {         
                check();
                if(Error)//設(shè)備有問題
                {                       
                        //處理故障
                        if(故障排除)
                        {
                                Error=0;
                                errorchecknum=0;
                        }
                }
        }
}
回復(fù)

使用道具 舉報

8#
ID:626079 發(fā)表于 2020-3-30 09:52 | 只看該作者
文心雕龍7 發(fā)表于 2020-3-30 02:36
首先你要確定errorchecknum是否定義為全局volatile易揮發(fā)變量,因為在循環(huán)判斷errorchecknum值時,errorche ...

嗯,好的,謝謝提醒,我試試定義為volatile看看
回復(fù)

使用道具 舉報

9#
ID:626079 發(fā)表于 2020-3-30 10:00 | 只看該作者
因為程序在一開始就卡死了, 懷疑在errrochecknum=1的時候程序就鎖死了…………如果程序取消對errrochecknum的判斷,就正常運行沒有問題。

這個問題想了幾天都沒有想明白。
回復(fù)

使用道具 舉報

10#
ID:626079 發(fā)表于 2020-3-30 10:32 | 只看該作者
wulin 發(fā)表于 2020-3-30 09:15
unsigned char errorchecknum;
bit Error;

感謝, 回頭按你這個思路改一下看看。
因為現(xiàn)在設(shè)備是好的,errorchecknum肯定是到不了50,之前關(guān)鍵是一到errorchecknum=1就死掉了。 當(dāng)有錯誤數(shù)據(jù)傳第一次傳過來,程序就卡死…………感覺就是errorchecknum在賦值為1后,下次來一個正確的數(shù)據(jù),errochecknum又該賦值為0,這時時候就卡住了。
回復(fù)

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復(fù) 返回頂部 返回列表
主站蜘蛛池模板: 91资源在线 | 羞羞视频网站免费观看 | 国产精品视频网站 | 国产精品夜夜夜一区二区三区尤 | 99久久免费精品国产男女高不卡 | 亚洲精品国产一区 | 午夜视频一区 | 午夜一区二区三区视频 | 91视频免费视频 | 老头搡老女人毛片视频在线看 | 国产在线一区二区三区 | a级黄色毛片免费播放视频 国产精品视频在线观看 | 久久久久国产精品一区二区 | 国产视频一区在线观看 | 九九伦理片| 国产视频日韩 | 国产美女黄色片 | 国产真实精品久久二三区 | 精品国产久 | 日本不卡在线视频 | 久久精品网 | 亚洲欧美高清 | 亚洲国产一区二区三区 | 日韩视频高清 | 日本一区二区三区四区 | 全部免费毛片在线播放网站 | 久久免费精品视频 | 日日日日日日bbbbb视频 | 中文字幕97 | 国产精品美女久久久久aⅴ国产馆 | 黄色毛片免费 | av黄色在线 | 亚洲综合在线视频 | 午夜视频在线 | 久久美女网 | 成人亚洲视频 | 精品日韩一区二区三区 | 久久婷婷色| 色婷婷综合久久久久中文一区二区 | 色伊人网| 日韩中文在线视频 |