togglen oder Diskret umschalten

Gast #2740394
Lesenswert?

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
Gast #2740403
Lesenswert?

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?
Gast #2740411
Lesenswert?

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.
Gast #2740423
Lesenswert?

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!

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren