Hallo, ich habe ein Board entwickelt, wo ich noch eine sache hätte besser machen können. ich drücke einen Taster und ziehe damit den !MCLR auf Low. Dadurch wird der Mikrocontroller zurückgesetzt. Jetzt möchte ich das ganze aber auch gerne über Software realisieren. Wenn ich über CAN eine bestimmte Nachricht bekomme, soll der Mikrocontroller resettet werde. Ist so etwas möglich? Das ganze möchte ich mit dem dsPIC30F6011 und dem XC16-Compiler machen. Ich hätte das ganze über einen Widerstand machen können, der mit dem MCLR und einem anderen pin verbunden ist. Dann hätte ich den Pin bei der Initialisierung auf High gesetzt und zum rücksetzen auf Low. Doch die Platine ist schon fertig geätzt und ohne unschöne pfuscherei für mich nicht möglich den widerstand da zu plazieren. Johannes
Wenn der Controller keine Möglichkeiten bieten sollten, sich per Software resetten zu lassen (z.B. Watchdog), dann hilft evtl. auch einfach ein Sprung an die Adresse, auf die der Reset-Vector zeigt.
Die PIC's kennen in der Regel einen Befehl namens RESET für einen Software gesteuerten Reset des Controllers. Siehe Datasheet Seite 163 der Befehl #60.
Ah, Watchdog. natürlich, dass sollte gehen. Auf die Idee bin ich gar nicht gekommen.
Die PIC-Controller lassen sich sehr einfach in Software resetten: Datenblatt Seite 167: [...] 59 | RESET | RESET | Software device Reset | 1 | 1 | None [...] sollte etwa so zu verwenden sein:
1 | asm("RESET"); |
Aber vieleicht gibts auch synonyme wie
1 | _RESET(); |
Schau dafür im entsprechenden <xc.h> file nach ~Lil B
:
Bearbeitet durch User
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.