Hallo, gerade bastle ich an einem kleinen Projekt, in dem der Leonardo mit ein paar Tastern als Makro-Tastatur verwendet werden soll. Funktioniert auch schon einigermaßen. Jetzt habe ich das Problem, dass nach dem Hochfahren des PCs der Leonardo gestartet wird und dann nicht vom PC als Tastatur erkannt wird. Dazu muss ich den Leonardo resetten. Die Idee ist jetzt, das Power-On Reset (POR) in der Software zu erkennen, eine fixe Zeit, z.B. 2 Minuten abzuwarten bis der PC hochgefahren ist. Dann soll ein Reset per Software ausgelöst werden (z.B. über Watchdog Timeout) und der Leonardo wird dann vom PC erkannt. Es gibt da auch ein Status-Register MCUSR (Datenblatt Seite 59: http://ww1.microchip.com/downloads/en/devicedoc/atmel-7766-8-bit-avr-atmega16u4-32u4_datasheet.pdf). Allerdings funktioniert die Erkennung eines POR damit nicht. Der Grund dafür scheint zu sein, dass der Bootloader dieses Register löscht (Zeile 119): https://github.com/arduino/ArduinoCore-avr/blob/master/bootloaders/caterina/Caterina.c Am Bootloader will ich nicht rum pfuschen. Deshalb die Frage: Gibt es noch eine andere Möglichkeit, einen POR zu erkennen als das Register auszulesen? Vielen Dank und Grüße Michael
Michael schrieb: > Am Bootloader will ich nicht rum pfuschen. Warum nicht? Da es doch offensichtlich keine andere Möglichkeit gibt. z.B. könntest du MCUSR in einem der GPIOR zwischenlagern Die Alternative wäre, ganz auf den Bootloader zu verzichten.
Naja, die Leute, die den Bootloader geschrieben haben, dachten sich sicher was dabei. Und bevor ich mir da Probleme einhandle, fasse ich da lieber nichts an. Darauf verzichten will ich aber nicht, sonst muss ich mir einen Programmer besorgen. Habe aber diese Lösung gefunden: Man schreibt eine Signatur ins RAM und schaut nach einem Reset, ob sie schon da ist. Beim POR ist sie nicht da, bei andern Resets schon. https://forum.arduino.cc/index.php?topic=364549.0
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.