Hi, ich berechne in der ISR, ob eine Frequenz zw. 9-11Hz anliegt. Zuerst hatte 2 Zählvariablen benutzt. Wegen Optimierung habe ich es so gemacht, dass ich nur noch eine brauche. Die Anzahl der Push- und Popoperationen sind aber gleich geblieben. Kann mir einer sagen wieso? Ich war jetzt davon ausgegangen, dass sie weniger werden. Gruss, Ramona
Oder ist es was ganz anderes: >ich berechne in der ISR, ob eine Frequenz zw. 9-11Hz anliegt. Ein bisschen mehr Hintergrund bitte: Globale Variable, oder Static in der ISR? Von lokalen Variablen in der ISR kann keine Rede sein!!! >Die Anzahl der Push- und Popoperationen sind aber gleich geblieben. Wo, in Funktionsbeginn und -ende? >Kann mir einer sagen wieso? >Ich war jetzt davon ausgegangen, dass sie weniger werden. Mit Push und Pop sichert der Compiler ein paar Register zum Funktionsaufruf oder der ISR. Lokale Static Variablen in einer Funktion, und das kann ja übertrieben gesehen ein Array mit mehreren Hundert Elementen in der ISR sein, viel mehr als der Controller Register hat, werden im RAM fest angelegt, das ist C-Standard. Es ist nicht wahrscheinlich, daß auf diese Variablen über Push und Pop zugegriffen wird und das da was gesichert wird. Globale und statische Variablen haben feste Adressen im RAM, und die Inhalte müssen durch die ISR nicht weiter gesichert werden. Das hat also nichts mit Push und Pop der Register zum Funktionsaufruf zu tun. Ist es das? Gruß Dietmar
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.