Datum: 12.05.2008 09:47
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?
Datum: 12.05.2008 10:05
#define isStatusLedOn ((PORTC & (1 << LED_STATUS)) == LED_STATUS) |
Kann nicht funktionieren. Müsste vielmehr so heißen:
#define isStatusLedOn ((PORTC & (1 << LED_STATUS)) == (1 << LED_STATUS)) /* oder */ #define isStatusLedOn ( (PORTC & _BV(LED_STATUS)) == _BV(LED_STATUS) ) |
Datum: 12.05.2008 10:09
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.
Antwort schreiben
Die Angabe einer Email-Adresse ist freiwillig. Wenn Sie automatisch per Email über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.
Wichtige Regeln - erst lesen, dann posten!
- Suchfunktion und Betreffsuche benutzen - vielleicht gibt es schon einen ähnlichen Beitrag
- Aussagekräftigen Betreff wählen
- Im Betreff angeben um welchen Controllertyp es geht (AVR, PIC, ...)
- Groß- und Kleinschreibung verwenden
- Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang
- JPEG-Dateien (.jpg) nur für Fotos und Scans verwenden
- Schaltpläne, Screenshots usw. als PNG oder GIF anhängen
Formatierung (mehr Informationen...)
- [c]C-Code[/c]
- [avrasm]AVR-Assembler-Code[/avrasm]
- [pre]vorformatierter Text (z.B. Code in anderen Sprachen)[/pre]
- [math]Formel in LaTeX-Syntax[/math]
- [[Titel]] - Link zu Artikel