Ich habe einen taktilen Schalter an die AVR-Reset-Taste gemäß der folgenden Schaltung angeschlossen. Jedes Mal, wenn ich die Taste drücke, setzt sich der AVR zurück, aber meine Frage ist: Gibt es eine Möglichkeit, diese Taste nach, sagen wir, 3 Sekunden zu aktivieren? Ich meine, drücken Sie die Taste und halten Sie sie für 3 Sekunden gedrückt, und dann wird der AVR zurückgesetzt. (eine Art Widerstands-Kondensator-Schaltung)
Die Schaltung hier aktiviert den AVR-Reset etwa 3 Sekunden nachdem der Schalter gedrückt wurde. Der AVR bleibt im Reset, solange die Taste über die 3 Sekunden gedrückt gehalten wird, und wird dann etwa 0,75 Sekunden nach dem Loslassen des Schalters aus dem Reset herauskommen.
(Bearbeiten: Schaltplan durch einen ersetzt, der den LM393-Komparator zeigt).
In diesem Schema dient die V1-Spannungsquelle dazu, eine spannungsgesteuerte Aktion des S1-Schalters bereitzustellen. Offensichtlich ist der S1 in Ihrem Fall einfach ein Schalter, den Sie mit dem Finger drücken.
Die 3-Sekunden-Verzögerung kann angepasst werden, um sie so nahe wie möglich an 3 Sekunden zu bringen, indem Sie den R4-Wert anpassen.
Der für U1 gezeigte Komparator ist ein Gerät mit einem Gegentaktausgang, sodass der Pullup-Widerstand R2 nicht erforderlich wäre. Wenn Sie einen anderen 5-V-kompatiblen Komparator wählen, hat dieser möglicherweise einen Open-Drain-Ausgang, sodass der R2-Widerstand erforderlich wäre.
Ohne externe Komponenten hinzuzufügen, können Sie die Reset-Pin-Funktion über Sicherungen deaktivieren ( Achtung! Sie sperren sich aus dem Chip aus, wenn Sie keinen HV-Parallelprogrammierer haben! ) und ihn als GPIO verwenden.
Wenn der Pin als GPIO konfiguriert ist, können Sie einfach in der Software zählen, wie lange die Taste gedrückt wurde, und einen Reset auslösen (z. B. über Watchdog).
Sie können auch jeden anderen GPIO verwenden, um einen Software-Reset durchzuführen.
ManyYack
Milad Chalipa