www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Unterprogramme und der Weg zurück


Autor: Agst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe gerade eine Gedankenblockade. folgendes (gekürztes) Programm
main()
{
  aus EEPROM Fehlerbit lesen //(ist 1, kurz zuvor gesetzt)
  if (Fehlerbit == 1)
    Fehlerroutine()
  weiter mit Programm
}


Unterprogramm Fehlerroutine:
Fehlerroutine()
{
  Wert messen
  if (Wert >= 5)
  {
    Fehlerbit in EEPROM zurück auf 0 setzen
    break();
  }
  alles ausschalten;
  Sleep mode();
}

Falls das Fehlerbit gesetzt wird/ist, dann soll der Controller in den 
Sleep mode fallen.

Wenn eine Bedingung erfüllt (Wert>=5) ist, soll das Fehlerbit 
zurückgesetzt werden und mit dem Programm weiter fortgefahren werden.

Geht das in dem oben geschilderten Fall so oder geht der Controller 
trotzdem noch in den sleep mode?

ich möchte natürlich, das das Programm sofort nach erreichen der 
Bedingung wieder fortgesetzt wird.

Anmerkung:
Der Sleep mode bleibt solange, bis die die Stromzufuhr unterbrochen 
wird. Erst bei erneutem Einschalten wird die Bedingung geprüft und das 
Fehlerbit evtl. zurückgesetzt. Soll heißen, das nach zurücksetzen des 
Fehlerbits, der Sleepmode nicht in Gang gesetzt werden soll.

Autor: Stefan B. (stefan) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Fehlerroutine()
{
  Wert messen
  if (Wert >= 5)
  {
    Fehlerbit in EEPROM zurück auf 0 setzen
  }
  else
  {
    alles ausschalten;
    Sleep mode();
    /* Forever bis Power-OFF / Power-ON */
  }
}

Autor: Agst (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ups - jaja die Gedankenblockade!

Ein einfaches Else - wer hätte das gedacht.

Vielen Dank!

>/* Forever bis Power-OFF / Power-ON */

 Richtig - forever bis Power off
 Nach Power On Bedingung prüfen

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.