hi habe eine serielle schnittstelle mit interrupt programmiert - leider werden keine interrupts behandelt .... ??? auch wenn ich den block SIGNAL(__vector_default) { // user code here z.b. led on } einbaue geschieht nichts obwohl die serielle schnittstelle funktioniert (ohne interrupt getestet) was kann das sein (stack.fuse bits ) ??? danke
fuse bits glaube ich nicht, das betrifft eigentlich nur den bootreset-vektor. stack-probleme würden sich eigentlich erst beim rücksprung bemerkbar machen. um das auszuschliessen könntest du die cpu per stop-befehl ganz brutal einfrieren, nach dem LED-Anschalten. vielleicht nochmal ganz genau im datenblatt die registerbeschreibungen bzw. das kapitel über den seriellen empfang durchlesen. unter manchen bedingungen muss immer zuerst das status register ausgelesen werden, bevor es weitergeht. hab auf die schnelle auch keinen lesezugriff aufs UDR gesehen, das kann auch erforderlich sein. läuft denn die schnittstelle im polling-betrieb, ggf. auch ohne die ganzen buffer? im laufenden polling-betrieb kannst du ja z.B. mal den transmit-complete vektor aktivieren, der hat eigentlich keine besonderen bedingungen oder nebenwirkungen. wenn dann alles abstürzt, hast du ein vektor-problem. den stack kannst du am einfachsten mit verschachelteten funktionsaufrufen testen. im detail, oder bei sporadischen fehlern lohnt sich ein zyklisches überprüfen der letzten stack-speicherstelle (mit hard-definiertem RAM-Pointer): zu programmbegin was markantes reinschreiben, und immer mal wieder auslesen. bei einem stacküberlauf steht dann was anderes drin. (einmalig kannst du aus die erste speicherstelle testen, ob der stack überhaupt richtig alloziert wird.) die interruptvektoren sind manchmal auch fehlerhaft (z.B. bei chip-redesign nach compiler-release), notfalls im generierten assemblercode prüfen. evtl. kann es auch stress geben, wenn ein RxD/TxD Pin als I/O Port konfiguriert ist.
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.