warum wird hier die DW RESET sooft wiederholt? Besten Dank für eure Antworten! mfg B. Gassmann
Das sind die Interrupt-Vektoren. Wenn keine IR-Routine für den ntsprechenden Interrupt vorhanden ist, dann darf dieser (natürlich) auch nicht auftreten. Wenn doch, dann ist das ein schwerer Programm(ier)fehler. Als Notnagel wird in diesem Programm dann ein Reset erzeugt. Analog funktioniert ja auch ein Watchdog: Programmfehler löst dort auch einen Reset aus. Stefan
Hallo zusammen! msp430-gcc bietet die Möglichkeit, eine Funktion namens 'UNEXPECTED()' zu überlagern. Was macht diese routine? Ganz einfach, anstelle der 'DW RESET' wird ein Assemblercode erzeugt, der einfach nach 'UNEXPECTED()' verweist. Man kann in dieser Routine (in der eigenen natürlich) dann selber entscheiden, was bei unbeabsichtigt auftretenden Interrupts passieren soll. Diese unbeabsichtigten Interrupts können beispielsweise dann auftreten, wenn das IE-Flag für einen Interrupt gesetzt ist, aber keine Handlerroutine existiert. Gruß, Patrick...
Wie Stefan schon sagte, es wird versucht durch einen Neustart einen schweren Programmierfehler zu vertuschen. Besser ist es daher, für jeden Interrupt auch einen Handler aufzusetzen, der die CPU nachhaltig stopt und vielleicht noch einen freien Pin setzt, als Zeichen, daß ein schwerwiegender Programmfehler aufgetreten ist. Peter
Ganz herzlichen Dank für eure Beiträge! Wenn ich richtig verstanden habe, verweisen im Beispiel die meisten Interrupt-Vektoren auf das RESET-Label. Bis jetzt habe ich gemeint, dass zB auf Platz 10 nur der Vektor "Watchdog timer" stehen dürfe. Auf jeden Fall bin ich glücklich, dass das msp430 Forum lebt. Dies ist für mich als Einsteiger beruhigend! Gruss Benno
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.