ich möchte einige Rechenroutinen in ein Programm integrieren. Da ich die Rechenergebnisse am Ende ins SRAM lege, wollte ich mal fragen ob ich die Register bei jeder Rechenroutine neu zuweisen kann? AVR-Studio wirft eine Warnung aber keinen Fehler aus. Kleines Beispiel: .def XYZ = R16 .def WXY = R17 Programm1..... .def ZYX = R16 .def YXW =R17 Programm2.....
Bei mir funktioniert dieses Vorgehen ohne Probleme. Man darf nur nicht durcheinanderkommen.
Die Warnung kommt, um Dir mitzuteilen dass Du etwas machst, wo die meisten einen Fehler machen. Wenn Du aber genau weisst, was Du machst, kannst Du das schon so machen.
Wenn Du die Registerinhalte während der Rechnerei auf Stack sicherst und darauf achtest, dass Du keine Register verwendest, die für exklusivnutzung in ISRs vorgesehen sind, dann kannst Du die Register doch mit ihren ursprünglichen Bezeichnungen (r16, r17, ...) ansprechen. Solange die Berechnungsroutine arbeitet, kann kein anderer Teil des Hauptprogramms arbeiten und die Register verändern. Nach der Rechnerei werden die alten Inhalte wiederhergestellt (pop), und das Hauptprogramm hat nix davon gemerkt. ...
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.