Problem mit schleifenabbruch

OP #917632
Lesenswert?

moin moin
ich habe ein problem in meinem quellcode. und zwar habe ich folgende 
funktion:

void out(void)
{
     zaehler();
     reset();
     durchmesser();
     spause();
}

void durchmesser(void)
{
  if (bit_is_clear(PINB,PB2))
    {

      char Buffer[20];
      while(1)
      {

        lcd_command(line1);    // springt in die 1.zeile
        lcd_out("  Durchmesser   ");  // ausgabe auf LCD

        lcd_command(line2);    // springt in die 2.zeile
        lcd_out("    <");             // ausgabe auf LCD

        itoa( d, Buffer, 10 );
        lcd_out( Buffer );            // ausgabe auf LCD
        lcd_out(" cm>     ");         // ausgabe auf LCD

        if(bit_is_clear(PINB,PB3))
           d--;
        if(bit_is_clear(PINB,PB4))
           d++;
        if(bit_is_clear(PINB,PB2))
           break;                    // hier
  }
 }
}

und zwar möchte ich bei dem break (hier) zurück in die funktion "out()" 
springen kann cih dafür den break befehl nehmen? wenn nicht wie sonst?

gruß max
Gast #917642
Lesenswert?

1
return;

bricht die gesamte funktion ab.

Aber das sieht etwas sinnlos aus:
1
  if (bit_is_clear(PINB,PB2))
2
  {
3
    ....
4
    if(bit_is_clear(PINB,PB2))  return;                    // hier
5
  }

Du machst was, wenn Bedingung erfüllt (PB2=0) und brichst dasselbe ab, 
bei gleicher Bedingung...

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren