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
lemmi187 schrieb:
> Welchen Datentyp bzw. Operator nehme ich da am besten?
bool aus <stdbool.h>
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?
> 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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.