Zusammenfassen von Bits in IAR für AVR

Gast #2137895
Lesenswert?
• ▲
▼
Hallo,

folgendes Problem:

Es sind an einem AVR über mehrere Ports verteilt LEDs angeschlossen. Die 
LEDs bilden jedoch physikalisch eine Balkenanzeige. Um den Code auf 
verschiedenen Hardware'en an denen die LEDs der Balkenanzeige an 
unterschiedlichen Portpins angeschlossen sind leichter anpassen zu 
können, hab ich mir folgendes gedacht.

Setzen mehrere LEDs mit einem Befehl:
1
Balkenanzeige = 0x83;

Setzen der äußerst rechten LED (wobei die anderen unberührt bleiben):
1
Balkenanzeige.LED0 = 1;
oder der 5ten LED:
1
Balkenanzeige.LED4 = 1;

In einem Headerfile sollen die einzelnen LEDs bestimmten Ports 
zugewiesen werden, so das beim Portieren nur die Portpin Zuordung 
geändert werden muss.
Portbits werden im IAR std.mäßig z.B. so gesetzt
1
PORTE.Bit0 = 1;

Was ich nun bräuchte wäre eben eine struct, union, oder sowas welche 
eben die oben genannten Bedingungen erfüllt...

Danke.
Gast #2137952
Lesenswert?
• ▲
▼
Ja, das hab ich auch so getan. ABER das hat zur Folge das das Setzen der 
LED Nr.8 eben 8 Takte braucht, das der LED Nr.1 nur 2... Aufgrund 
dessen, daß der Compiler eben erst die 1 um soundsoviel (je nach Stelle 
im Register) schiebt.

Switch Case wäre noch ne Möglichkeit... finde ich aber auch etwas 
unelegant.

Kann man nicht irgendwie ein Pointerarray erstellen, welches auf die 
einzelnen Bits definiert wird?

in der Art:
1
*Bit0 = PORTC.BIT0;

???

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.