Forum: Compiler & IDEs Variable invertieren


von lemmi187 (Gast)


Lesenswert?

Hallo

brauch schnell mal Hilfe mit dem C- Syntax:
Ich habe drei Taster, die über einen externen Interrupt drei LEDs 
steuern.
Nun möchte ich, dass beim ersten Mal Drücken des Tasters die ledFlag auf 
1 geht und beim erneuten Drücken des Tasters wieder auf 0. Im Prinzip 
ein simples invertieren.
Welchen Datentyp bzw. Operator nehme ich da am besten?

lemmi

von ozo (Gast)


Lesenswert?

XOR ist dein Freund, guckst du hier:
Beitrag "bit invertieren in C"

N'abend

von lemmi187 (Gast)


Lesenswert?

Super, danke.

lemmi

von Rolf Magnus (Gast)


Lesenswert?

lemmi187 schrieb:
> Welchen Datentyp bzw. Operator nehme ich da am besten?

bool aus <stdbool.h>

von Andreas K. (scavanger)


Lesenswert?

Rolf Magnus schrieb:
> lemmi187 schrieb:
>> Welchen Datentyp bzw. Operator nehme ich da am besten?
>
> bool aus <stdbool.h>

1. Nur bei C99!

und

2. Warum? Für für so was simples kann man die Port-Pins auch direkt 
schalten. Warum eine Hilfsvariable?

von Ralf (Gast)


Lesenswert?

> Warum? Für für so was simples kann man die Port-Pins auch direkt
> schalten. Warum eine Hilfsvariable?
My50cent: Ich halte es nicht für verkehrt, einen Portzustand in eine 
Variable einzulesen und dann von dort weiterzuarbeiten. Mag bei kleinen 
Programmen nicht notwendig, überflüssig und oversized sein, aber wenn's 
mal komplexer wird, könnten sonst Seiteneffekte auftreten, die real gar 
nicht vorhanden.
Zumindest ging's mal dem Stift so, der beim Messen zwei Pins 
unbeabsichtigt durch die Messspitze kurzgeschlossen hatte (lowaktiver 
Tastereingang neben lowaktivem Ausgang für LED). Er hatte gemessen, 
nachdem die LED aktiv wurde. Anstatt den Taster zwischenzuspeichern, 
hat er ihn überall neu eingelesen, obwohls gar nicht nötig war und sich 
dann einen Wolf für einen Pseudofehler gesucht (okay, zugegeben, ein 
Reset + zweiter Messlauf hätte ihm auch nicht geschadet :))

Ralf

von Rolf Magnus (Gast)


Lesenswert?

Andreas Kanzler schrieb:

> Rolf Magnus schrieb:
>> lemmi187 schrieb:
>>> Welchen Datentyp bzw. Operator nehme ich da am besten?
>>
>> bool aus <stdbool.h>
>
> 1. Nur bei C99!

Ja, und?  Kann GCC doch.

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
Noch kein Account? Hier anmelden.