Einer Char-Variablen Ausgänge zuweisen

Gast #2281744
Lesenswert?

Hallo zusammen.
Ich programmiere seit einer gewissen Zeit C für PICs. Jetzt hab ich an 
einem "Problem", wozu ich eine Frage hätte. Und zwar hab ich einen PIC, 
der 21 IOs hat (18F2550). Der PORTA hat 6 bit, PORTB hat 8bit und PORTC 
hat 7 bit. Ich bekomme über I²C eine 8bit-Zahl, die ich dann Ausgeben 
möchte. Idealerweise hätte ich die Zahl genommen und direkt auf PORTB 
geschrieben. Doch da 2 bits vom PORTB für das I²C-Modul gebraucht werden 
(RB0&RB1), habe ich somit keinen freien 8-bit-PORT. Jetzt hab ich mir 
überlegt, ich nehme RC6 statt RB0 und RC7 statt RB1, dann RB2-RB7 für 
den Rest. Wenn ich jetzt aber die 8bit Zahl in einem Buffer habe, müsste 
ich die ersten beiden Maskieren, verschieben und nach PORTC schreiben 
und dann nochmal die Zahl zu PORTB schreiben.
Da kam mir folgender gedanke: Kann man einer char-Variablen Ausgänge 
zuweisen? So dass ich zum Beispiel die Zahl in die Variable 
"port_ersatz" schreibe und der Compiler dann weiß, welche Pins/IOs er 
setzen bzw. löschen muss?
Zum Beispiel:
1
char port_ersatz;
2
// definiere port_ersatz.0 als PORTC.6
3
// definiere port_ersatz.1 als PORTC.7
4
// definiere port_ersatz.2 als PORTB.2
5
// definiere port_ersatz.3 als PORTB.3
6
// definiere port_ersatz.4 als PORTB.4
7
// definiere port_ersatz.5 als PORTB.5
8
// definiere port_ersatz.6 als PORTB.6
9
// definiere port_ersatz.7 als PORTB.7
10

11
port_ersatz = 0xAA;

Ich hoffe es ist klar geworden, was ich meine.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren