Hallo zusammen, kann mir jemand sagen, ob der Inhalt der 32 Register eines ATmega durch WinAVR immer gleich ist? Ich habe hier in einem kleinen Projekt ein Minibetriebssystem auf einem ATmega erstellt. Dabei wird durch den Timerinterrupt immer wieder das Scheduling betrieben, und dabei stellt sich mir die Frage, wie ich die Register für die einzelnen Tasks am besten initialisiere. Ich hatte schon mal Probleme, als ich die Register gar nicht initialisiert habe. Momentan initialisiere ich alle Register mit 0x00 und das scheint so auch stabil zu laufen. Ich bin mir jedoch nicht sicher, ob das so richtig ist, bzw. ob ich dadurch später ggf. nochmal in Probleme laufen kann. Weiß jemande genaueres, bzw. weiß jemand, wo ich das nachlesen könnte?? Gruß und besten Dank für eure Hilfe
Das Register R1 muss bei Initialisierung den Wert 0 haben, ansonsten muss nix vorinitialisiert werden ausser SP, aber beim Task-Wechsel natürlich alle Register inclusive des SP und des PSW (SREG) gesichert/restauriert werden. http://www.roboternetz.de/wissen/index.php/Avr-gcc/Interna#Registerverwendung
Besten Dank für die schnelle und hilfreiche Antwort :-)
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.