Ich arbeite mit einem ATmega128 und muss den Mikrocontroller zurücksetzen, nachdem etwa 10 Sekunden vergangen sind und der Benutzer nicht mit dem Mikrocontroller interagiert hat. Wenn der Benutzer beispielsweise 10 Sekunden lang keine Taste auf einer Tastatur gedrückt hat, sollte der Controller zurückgesetzt werden.
Ein Watchdog-Timer ist im ATmega128 verfügbar, aber ich kann maximal 2 Sekunden Verzögerung erhalten, bevor er zurückgesetzt wird. Aber ich benötige 10 Sekunden.
Vielleicht kann ich es mit Timern machen, aber ich weiß nicht, wie ich vorgehen soll?
Anstatt für diesen Zweck den Watchdog-Timer zu verwenden,
Starten Sie einen Timer, bevor Sie Eingaben vom Benutzer akzeptieren, setzen Sie diesen Timer jedes Mal zurück, wenn der Benutzer etwas eingibt ... Wenn der Benutzer für eine bestimmte Zeit inaktiv ist, wird der Timer überlaufen ... Eingabe"-Schleife!
Es ist möglich, dasselbe zu erreichen. Verwenden Sie den Watchdog (dh intern oder extern). Wenn es extern ist, müssen Sie das Datenblatt und die Antwort darauf überprüfen. Der interne Watchdog muss für 2 Sekunden eingestellt werden und dann in einer Schleife für mehr als 1 Sekunde zurückgesetzt werden. es ist günstig, für den gleichen Zweck einen Timer zu verwenden. Lassen Sie den Watchdog einfach nach jeder Sekunde ruhen und setzen Sie den Watchdog-Zähler nach 5 Mal zurück.
Sanju
John u
Christoph
Sanju
John u
Sanju
John u
for(i=99999;i>0;){i--;}
. Dies wird im Allgemeinen als schlechte Methode zum Hinzufügen von Verzögerungen angesehen, da die CPU dadurch daran gehindert wird, irgendetwas anderes zu tun, aber es ist die grundlegendste Methode.Sanju
Schwanand
John u
Sanju
Sanju