Ich habe gerade eine Gedankenblockade. folgendes (gekürztes) Programm
1 | main()
|
2 | {
|
3 | aus EEPROM Fehlerbit lesen //(ist 1, kurz zuvor gesetzt)
|
4 | if (Fehlerbit == 1)
|
5 | Fehlerroutine()
|
6 | weiter mit Programm
|
7 | }
|
8 |
|
9 |
|
10 | Unterprogramm Fehlerroutine:
|
11 | Fehlerroutine()
|
12 | {
|
13 | Wert messen
|
14 | if (Wert >= 5)
|
15 | {
|
16 | Fehlerbit in EEPROM zurück auf 0 setzen
|
17 | break();
|
18 | }
|
19 | alles ausschalten;
|
20 | Sleep mode();
|
21 | }
|
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.