Forum: Compiler & IDEs AVR-GCC "C" Port als Variablenwert ablegen und nutzen - ich komm einfach nicht drauf


von Frank_G (Gast)


Lesenswert?

Hallo,

kann mir bitte jemand einen Tipp geben. Ich komme einfach nicht drauf:
Eine Variable soll einen Portbezeichner enthalten und diesen Port will 
ich dann als Variablenwert im Code verwenden.
Also nicht:
PORTC = 0b00001111 ;
sondern
<passender typ> mein_Port = "PORTC" ;        <== ????
mein_Port = 0b00001111;                      <== ????

Bitte nicht sowas:
if mein_Port == "PORTA" then PORTA = 0b00001111 ;
if mein_Port == "PORTB" then PORTB = 0b00001111 ;
if mein_Port == "PORTC" then PORTC = 0b00001111 ;
...

(Ich hoffe mein avr-gcc "C"-Pseudocode ist verständlich.)

Danke & Gruß

von Stefan E. (sternst)


Lesenswert?

Frank_G wrote:

> <passender typ> mein_Port = "PORTC" ;        <== ????

volatile uint8_t * mein_Port = &PORTC;

> mein_Port = 0b00001111;                      <== ????

*mein_Port = 0b00001111;

von Karl H. (kbuchegg)


Lesenswert?

Das sollte gehen
1
  volatile uint8_t * meinPort;
2
3
...
4
5
  meinPort = &PORTA;
6
7
  *meinPort = 0xFF;    // etwas am Port rausschieben
8
9
  meinPort = &PORTB;

von Frank_G (Gast)


Lesenswert?

Doch so einfach ?! Vielen Dank hat mir sehr geholfen!

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.