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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2239|回復: 8
打印 上一主題 下一主題
收起左側

單片機C語言跳出while循環的時候出錯

[復制鏈接]
跳轉到指定樓層
樓主
ID:410231 發表于 2019-8-12 21:58 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
while(sign)
        {
                 level = GetADCResult();//獲取ad轉化結果
                sprintf(s, "%u\n", level);
                send_string(s);//使用串口發送字符串
                Delay10ms();
                if(level < 20 || level > 50)
                        continue;
                sign = 0;//跳出循環
        }
        alarm(10);//報警
代碼如上,但是加入跳出循環的語句后讀取到的ad轉化的結果不正確,這是為什么?求大佬告知。

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

使用道具 舉報

沙發
ID:365802 發表于 2019-8-13 08:19 | 只看該作者
嗯, continue的意思是說, 結束本次循環, 繼續下一次. 如果想結束循環體則需要使用break.
回復

使用道具 舉報

板凳
ID:213173 發表于 2019-8-13 08:22 | 只看該作者
ad轉換結果正常范圍是0~255或0~1023,樓主限定有效范圍是20~50,否則報警。
        while(sign)
        {
                level = GetADCResult();//獲取ad轉化結果
                sprintf(s, "%u\n", level);
                send_string(s);//使用串口發送字符串
                Delay10ms();
                if(level < 20 || level > 50)
                {
                        //continue;
                        sign = 0;//跳出循環
                }
        }
        alarm(10);//報警
回復

使用道具 舉報

地板
ID:588518 發表于 2019-8-13 09:19 | 只看該作者
你讀取到的AD轉換結果的正確值在20到50之間?
回復

使用道具 舉報

5#
ID:599611 發表于 2019-8-13 09:34 | 只看該作者
樓主是不是想下面這個意思?
while(sign)
        {
                 level = GetADCResult();//獲取ad轉化結果
                sprintf(s, "%u\n", level);
                send_string(s);//使用串口發送字符串
                Delay10ms();
                if(level < 20 || level > 50)
                 {;
                 }
                else
                {
                   sign = 0;//跳出循環
                 }
        }
        alarm(10);//報警
回復

使用道具 舉報

6#
ID:384252 發表于 2019-8-13 22:34 | 只看該作者
從樓主提供的代碼來看,不管level 的值是多少,都會跳出while循環的喔,因為有sign = 0;所以不管怎么樣都會跳出while循環的。換句話說if(level<20 || level > 50) continue;就沒有什么意思了,只不過是多此一舉而已了
回復

使用道具 舉報

7#
ID:599517 發表于 2019-8-13 23:09 來自手機 | 只看該作者
沒意義啊,sign= 0這里除了第一次之外每次都運行啊,還不如把while(sign)去掉!!!
回復

使用道具 舉報

8#
ID:593388 發表于 2019-8-14 05:00 | 只看該作者
你這樣寫一定會錯, 因為 embedded 一定是要在無窮 loop 裡面跑. 不可以跳出 loop. 因為一旦跳出 loop, program 沒有 OS 可以承接, 當然會錯. 你應該是要在 while(1) 裡面用 case 切換.
回復

使用道具 舉報

9#
ID:426861 發表于 2019-8-14 09:51 | 只看該作者
因為跳出循環每次都會執行啊
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: a在线视频观看 | 99热最新网址 | 国产av毛片| 中文字幕久久精品 | 中文在线a在线 | 野狼在线社区2017入口 | 精品视频国产 | 亚洲导航深夜福利涩涩屋 | 韩日一区二区 | 国产精品久久久久久一区二区三区 | 99视频网站 | 亚洲一区二区久久 | 亚洲欧美中文日韩在线v日本 | 一级黄色大片 | 国产亚洲欧美日韩精品一区二区三区 | 青青草中文字幕 | 天堂一区二区三区 | 欧美久久大片 | 国产精品区二区三区日本 | 久久精品二区亚洲w码 | 久久y| 欧美激情视频一区二区三区在线播放 | 国产精品久久一区二区三区 | 精久久久| 日韩欧美一区二区三区四区 | 日韩成人精品视频 | 亚洲精品免费观看 | 日韩一区二区在线播放 | 一本一道久久a久久精品蜜桃 | 在线免费观看黄色 | 日韩中文在线观看 | 黄色在线观看网址 | 国产精品国产精品国产专区不卡 | 久久久久国产精品一区二区 | 9久久婷婷国产综合精品性色 | 亚洲经典一区 | 欧美一区二区三区在线观看 | 亚洲一区中文字幕 | 狠狠爱综合 | 国产伦精品一区二区三区精品视频 | 精品欧美一区免费观看α√ |