【发布时间】:2015-08-07 08:35:04
【问题描述】:
我主要使用 mikroC (Microchip) 进行编程。我需要在我的代码中中断一个循环,但“break;”没有结果你能帮我吗? 我需要在满足条件后“停止”一切!
这是我的项目流程图:
这是我的代码:
void main() {
int x=0;
TRISD=0B00011111;
TRISB=0B11111000;
PORTB.F0=0;
PORTB.F1=0;
PORTB.F2=0;
while(1){
if(x==3){break;}
if(PORTD.F1==0)
{
if(PORTB.F2==0){PORTB.F1=1;delay_ms(50);PORTB.F0=1;delay_ms(300);PORTB.F2=1;}
}
if(PORTB.F2==1){PORTB.F0=0;}
if(PORTD.F1==1)
{
PORTB.F1=0;PORTB.F0=0;PORTB.F2=0;
}
PORTB.F2=0;
delay_ms(300);
while(x<=4){
x++;
if(PORTD.F1==0)
{
if(PORTB.F2==0){PORTB.F1=1;delay_ms(50);PORTB.F0=1;delay_ms(300);PORTB.F2=1;}
}
if(PORTB.F2==1){PORTB.F0=0;}
if(PORTD.F1==1){delay_ms(300);PORTB.F0=0;PORTB.F1=0;PORTB.F2=0;}
}
}
}
【问题讨论】:
-
您的第二个 while 循环以
x = 0开头,并在x = 5时退出(当x <= 4为假时),因此您的if(x==3){break;}永远不会被触发。 -
那么我该如何解决这个问题?
-
我建议更好地格式化你的代码...如果你想要单行,然后编写一个带有适当参数的函数,然后调用它,而不是在一行中塞满多个语句。
-
当然我会这样做,但首先要获得正确的代码
-
现在,停止工作,让 'PORTB.F1' 和 'PORTB.F2' 仍然高!