Forum: Mikrocontroller und Digitale Elektronik Problem mit schleifenabbruch


von Maximilian G. (max133)


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

von Matthias L. (Gast)


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...

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.