欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

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

單片機(jī)控制電機(jī)正反轉(zhuǎn),程序1判斷到了break就停止循環(huán)了

[復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
為什么程序1判斷到了break就停止循環(huán)了  但是加了一段返回的語(yǔ)句就一直循環(huán)大佬們求正解



IMG20190725161932.jpg (9.54 KB, 下載次數(shù): 87)

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

使用道具 舉報(bào)

沙發(fā)
ID:405193 發(fā)表于 2019-7-25 19:53 | 只看該作者
我認(rèn)為2的里面jiang=1; 可能調(diào)用到了別的程序了,別的程序繼續(xù)滿(mǎn)足了if(num==4)又循環(huán)了,這樣就沒(méi)有直接運(yùn)行下面的break.
回復(fù)

使用道具 舉報(bào)

板凳
ID:553625 發(fā)表于 2019-7-26 10:43 | 只看該作者
yong761228 發(fā)表于 2019-7-25 19:53
我認(rèn)為2的里面jiang=1; 可能調(diào)用到了別的程序了,別的程序繼續(xù)滿(mǎn)足了if(num==4)又循環(huán)了,這樣就沒(méi)有直接運(yùn) ...

那有什么辦法解決沒(méi)有  感覺(jué)自己對(duì)編程比較小白
回復(fù)

使用道具 舉報(bào)

地板
ID:590652 發(fā)表于 2019-7-26 11:16 | 只看該作者
break;是跳出循環(huán),如果你的就一個(gè)大循環(huán)那么就直接跳出循環(huán),把所有的程序都執(zhí)行完了,自然就不會(huì)循環(huán)了啊,我猜你復(fù)位一下應(yīng)該又可以按一下,然后遇到break;就又停下來(lái)了,返回語(yǔ)句不懂了,你可能把break;改成continue;建議程序不要這樣寫(xiě),用switch語(yǔ)句寫(xiě)會(huì)更好
回復(fù)

使用道具 舉報(bào)

5#
ID:589552 發(fā)表于 2019-7-26 11:34 | 只看該作者
你這程序只列了一小部分吧。  都沒(méi)看到循環(huán)體系啊。 if語(yǔ)句不是while語(yǔ)句,不會(huì)自己循環(huán),執(zhí)行完了繼續(xù)往下走。 你得把整體一點(diǎn)的程序列出來(lái),才好分析。
回復(fù)

使用道具 舉報(bào)

6#
ID:553625 發(fā)表于 2019-7-26 15:10 | 只看該作者
C51oo 發(fā)表于 2019-7-26 11:34
你這程序只列了一小部分吧。  都沒(méi)看到循環(huán)體系啊。 if語(yǔ)句不是while語(yǔ)句,不會(huì)自己循環(huán),執(zhí)行完了繼續(xù)往下 ...

#include <reg52.h>
#include <intrins.h>

sbit KEY_UP=P1^3;
sbit KEY_DW=P1^4;
sbit DIR_UP=P3^2;
sbit DIR_DW=P3^3;
sbit CON_ECU=P3^4;

void DelayUs2x(unsigned char t);
void DelayMs(unsigned char t);
void Delay_ms(unsigned char t);

void main()
{
                KEY_UP=1;
                KEY_DW=1;
                DIR_UP=0;
                DIR_DW=0;
                CON_ECU=1;
       
                while(1)
                {
        if(KEY_UP==0)
                                {       
                                           Delay_ms(5);
                                           if(KEY_UP==0)
                                                {
                                                                CON_ECU=0;
                                                                Delay_ms(10);
                                                          DIR_UP=1;
                                                                DelayMs(10);
                                                          CON_ECU=1;
                                                          Delay_ms(10);
                                                          DIR_UP=0;
                                                          
                                                                DelayMs(190);
                                                       
                                                                DIR_DW=1;
                                              Delay_ms(10);
                                                          DIR_DW=0;
                                                }
                                                    
                                }
                               
        if(KEY_DW==0)
                                {      
                                                                DelayMs(10);
                                                                if(KEY_DW==0)
                                {
                                                                DIR_DW=1;
                                                                Delay_ms(10);
                                                                DIR_DW=0;
                                                       
                                                                DelayMs(190);
                                                                DelayMs(190);
                                                                DelayMs(190);
                                                                DIR_UP=1;
                                                          Delay_ms(10);
                                                                DIR_UP=0;
                                }                
                        }
                }
  }


       
       
void DelayUs2x(unsigned char t)
{   
                while(--t);
}

void DelayMs(unsigned char t)
{   
                while(t--)
                {

                                DelayUs2x(245);
                                DelayUs2x(245);
                }
}

void Delay_ms(unsigned char t)               
{
        unsigned char i,j,k;
  for(k=0;k<t;k++)
        {
                _nop_();
                i = 2;
                j = 199;
                do
                {
                        while (--j);
                } while (--i);
        }
}



看這個(gè)  我想改成觸發(fā)一次電機(jī)就只轉(zhuǎn)一次 如果這個(gè)信號(hào)一直維持也只轉(zhuǎn)設(shè)定的那幾十毫秒,再次觸發(fā)同樣,怎么搞啊
回復(fù)

使用道具 舉報(bào)

7#
ID:398075 發(fā)表于 2019-7-26 17:01 | 只看該作者
建議直接去掉break,
回復(fù)

使用道具 舉報(bào)

8#
ID:553625 發(fā)表于 2019-7-26 22:03 | 只看該作者
281433001 發(fā)表于 2019-7-26 17:01
建議直接去掉break,

這個(gè)沒(méi)加break啊
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表