Hi habe das Problem, dass wenn ein IRQ ausgelöst wird, z.B. mein Register temp (das dort in der Interruptroutine auch benutzt wird) nicht vorher gesichert wird und dann zurückgewonnen wird. Denn nach dem Interrupt ist das Register mit anderem Inhalt gefüllt ....
üblicherweise sichert man was man benötigt auf den Stack und holt es anschliessend wieder da raus (Push und Pop). Da du es ja vorgezogen hast nix Sachdienliches mit anzugeben, kann man eigentlich keine näheren Tipps geben. bye Frank
Ja, das ist so üblich. Interrupts sollen ja schnell sein. Und da sie nicht wissen können, ob und welche Du Register Du sichern willst, mußt Du das eben selbst tun. Da der AVR sehr viel Register hat, ist es effektiver, einfach einige Register für die Interrupts zu reservieren, statt sie ständig zu pushen und zu poppen. Peter
Und nicht vergessen, das SREG zu sichern und wieder zurückzuschreiben vor verlassen der ISR.
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.