Moin, ich verwende einen PIC16F876 um per UART Daten zu empfangen und die dann über ein LCD auszugeben. Jetzt taucht da dauernt der Fehler: FSR not saved/restored during interrupt 'ISR' auf. Ich weiß nur nicht was ich falsch gemacht haben könnte. Wenn ich das ganze ohne Array in das LCD schreibe funktioniert das. Will ich das Array zu Hilfe nehmen klappts wiederum nicht. Vielleicht wird jemand von euch schlau draus. Wär echt nett wenn mir jemand helfen könnte. Achso der Quelltext und die Fehler .occ sind im angefügten .zip! Gruß Htrik
Guten Tag, gibts hier keinen, der mir bei meinem Problem helfen kann? Gruß Htrik
> (Please read 'int16cxx.h')
Hast du schon mal in diese Datei reingeschaut, ob da irgendein Hinweis
enthalten ist?
Ja hab die mir schon durchgelesen. Bin bezüglich meines Problems nur nicht schlauer geworden. Vielleicht versteh ichs auch nicht. Wenn jemand mal in die Datei reinschauen mag, ich hab se angehängt. Gruß Htrik
Hat zwar jetzt nichts mit deinem Problem an sich zu tun. Aber den goto solltest du da rauswerfen. goto ist etwas was man in C nur ganz selten benutzt (zb um gemeinsame Fehlerbehandlungen zu machen). In deinem Fall gibt es keinen Grund dafür.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
ist vollkommen äquivalent zu
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
Es geht anscheinend um diesen Codeabschnitt:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
Gemäß Kommentar in http://www.isk.kth.se/~mamoon/Mamoon%20work/INT16CXX.H würde ich das umschreiben zu:
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
15 | |
16 | |
17 | |
18 | |
19 | |
20 | |
21 | |
22 | |
23 | |
Hendrik Ebert wrote: > Ja hab die mir schon durchgelesen. Bin bezüglich meines Problems nur > nicht schlauer geworden. Ach? Wenn ich das Header File 5 Sekunden überfliege, dann seh ich einen offensichtlich als Beispiel gedachten Abschnitt
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
11 | |
12 | |
13 | |
14 | |
und deine Fehlermeldung spricht über ein nicht gesichertes FSR Register.
Da frag ich mich doch glatt, was wohl
//char sv_FSR = FSR; // save FSR if required
bedeuten könnte und was mir der Autor dieser H-Datei damit wohl sagen
will?
Edit: Und die letzte Frage beantwortet sich dann auch gleich von selber,
denn der Autor hat gleich nach dem Beispielcode einen wunderschönen
Absatz geschrieben, indem er noch mal ausführt, dass der Compiler das
FSR Register zwar nicht automatisch sichert, allerdings prüft ob es
notwendig wäre und man dann in so einem Fall das Sichern mit der Hand
machen müsste.
Oha, hab ich nicht gesehen. Sry. Danke aber für die antworten! Gruß Htrik
So habs gleich verändert. Funktioniert jetzt auch! Danke nochmal!
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.