Variable an Ausgang zuweisen

Gast #1285818
Lesenswert?

Entschuldigt mich, falls euch dieser Thread zum Hervorholen zu alt ist, 
aber:
Kann man obigen Code von rufus auch einfacher/in einer Anweisung ohne 
if-Abfrage schreiben?
Mir kommt es ein wenig umständlich vor, für eine einfache Pinänderung 
eine If-Abfrage einzuführen.
Oder ist es für den µC sogar effizienter, wenn man den ganzen PORT in 
eine Variable schreibt, dort direkt den betreffenden Pin ändert und 
wieder zurückschreibt?
#1286359
Lesenswert?

nowayback schrieb:
> Kann man obigen Code von rufus auch einfacher/in einer Anweisung ohne
> if-Abfrage schreiben?

Wenn du die anderen Port Pins nicht verändern willst: nein

> Oder ist es für den µC sogar effizienter, wenn man den ganzen PORT in
> eine Variable schreibt, dort direkt den betreffenden Pin ändert und
> wieder zurückschreibt?

Das ist eigentlich schlechter, weil die Operation nicht atomar abläuft.
Aber auf einem AVR gibt es eine Assemblerinstruktion um einen Portpin zu 
setzen bzw. zu löschen. Zumindest der avr-gcc ist daraufgetrimmt, solche 
Fälle zu erkennen und dann diese Operation zu benutzen.
1
  PORTB |= ( 1 << PB5 );

sieht zwar in C nach einem Monster aus, compiliert aber zu dieser 
Spezialinstruktion.

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