Forum: Compiler & IDEs Problem bei der Abfrage von Ausgängen


von Peter Fischer (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich komme einfach nicht weiter. An einem mega8 habe ich an PortC über je 
eine Vorwiderstand eine LED mit VCC verbunden. Über die Makro (z.B. 
LED_STATUS_ON) kann ich diese auch ein- und ausschalten und über das 
Makro isStatusLedOn auf den Zustand abfragen. Die StatusLED und die 
grüne LED blinken gemeinsam.

So weit - So gut. Nur wenn ich über das Makro isGREENLedOn klappt nicht 
- die rote LED bleibt aus und damit auch alle restlichen.

Kann mir jemand weiterhelfen?

von Sven P. (Gast)


Lesenswert?

1
#define isStatusLedOn   ((PORTC & (1 << LED_STATUS)) == LED_STATUS)

Kann nicht funktionieren. Müsste vielmehr so heißen:
1
#define isStatusLedOn   ((PORTC & (1 << LED_STATUS)) == (1 << LED_STATUS))
2
/* oder */
3
#define isStatusLedOn   (  (PORTC & _BV(LED_STATUS)) == _BV(LED_STATUS)  )

von Peter Fischer (Gast)


Lesenswert?

Vielen Danke!

Natürlich - jetzt fällt es mir auch auf! Bei isStatusLED hat es 
funktioniert, da 1 == (1<<StausLED) ist.

Oh Mann - ich hab schon an meinem Verstand gezweifelt.

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.