Moin, eine Frage zum Toggle Operator: P1OUT ^= BIT0; im Vergleich zu der Komkbination der beiden Ausdrücke: P1OUT |= BIT0; P1OUT &=~ BIT0; Besitzen die beiden Operatoren unterschiedlich lange Bearbeitungszeiten? Ist der Speicherbedarf im Programm unterschiedlich groß? Handelt sich um einen MSP430. mfg
in erster Linie liegt es dem compiler bzw. dem Hersteller / Programmierer des Compilers wie die c-Befehle in Maschinencode umgesetzt werden. Ich würde aber vermuten dass das Erbeniss das gleiche ist! Beides sind gängige Mathoden, ich tippe darauf dass es gleich übersetzt wird! Welchen compiler verwendest du?
christoph schrieb: > Beides sind gängige Mathoden, ich tippe darauf dass es gleich übersetzt > wird! das sollte eigentlich nicht passieren. Denn P1OUT |= BIT0; P1OUT &=~ BIT0; sind 2 Anweisungen die auf ein IO-Port gehen, dies sollte der compiler 1:1 umsetzen er darf dabei nichts zusammenfassen. Es kann ja gewollt sein, das der ausgang genau in dieser reihenfolge umgeschaltet wird.
nun ja, ich ging oben davon aus, dass die Toggelreihenfolge gleich ist. wobei mir dabei noch auffällt dass bei einem toggel ja erst geprüft werden muss, welche Zustand der Port hat, die Toggelanweisung dürfte daher etwas länger dauern! bei P1OUT |= BIT0; P1OUT &=~ BIT0; muss ich dagegen wissen welchen Zustand ich vor der Ausführung habe, sonst sieht man nichts am Port!
Viele Prozessoren haben eine XOR Funktion die für sowas genutzt wird (zumindest vom AVR-gcc)... aber nur wenn auch xor dasteht, das andere kann ja theoretisch (wennzwischendrin ein Interrupt kommt) was anderes machen....
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.