Hallo zusammen,
das hat ja mal Seltenheitswert. Alle haben Recht.
izaseba erklärt die Prios von Interrupts und unterbrochene Funktionen.
damaltor liefert Kreisprogramme für 3 Sekunden und weitere Erklärungen.
asuroer stellt fest, das Sleep() in einem anderen Interrupt nicht sinnvoll ist, da es nicht geht.
Warum das nicht geht liegt allerdings nicht am SIG_OUTPUT_COMPARE2, sondern am SIG_OVERFLOW2. In der dazu gehörenden Interrupt-Funktion wird ja die Variable count36kHz hochgezählt. Und wenn die Sleep()-Funktion diesen Wert nun innerhalb einer gerade laufenden Interruptfunktion abfragt, bleibt der Wert in count36kHz ja tatsächlich auf immer und ewig stehen, da eine begonnene Interruptfunktion ja nicht unterbrochen werden kann (ausser man will es wie izaseba schon sagte). Somit kann Sleep() also nie verlassen werden. Und damit steht das System.
Lesezeichen