sbit dynamisch?

Gast #2162095
Lesenswert?

Moin zusammen,

Ich programmiere mit dem 167cs von Infineon.
Mein Problem:

Ich habe 2 Signale die abwechselnd über einen Eingang eingelsen werden 
sollen.

Wenn ich vorher beide Pins über sbit deklariere:

sbit Signal1 = 2^0;
sbit signal2 = 2^1;

und später im Programm sage:
if(Auswahl == 1)
    Input = Signal1;
else
    Input = Signal2;

klappt es nicht.

Input ist als volatile Variable deklariert, da sie in einigen ISR und im 
Hauptprogramm eingelesen wird.

Wie kann ich es sonst machen? Kann man es irgendwie dynamisch machen?

Gruß
D
Gast #2162181
Lesenswert?

Was verstehst du unter "dynamisch" in diesem Fall?

Deine sbit-Deklarationen sind zumindest missverstaendlich fuer den 
Compiler. Meinst du vielleicht P2^0 und P2^1?
Nicht vergessen im DP Register die Pins zu Eingaengen zu machen.
Gast #2162253
Lesenswert?

Danke!
Meine auch

sbit Signal1 = P2^0;
sbit signal2 = P2^1;

DP Register sind gesetzt.

Wahrscheinlich liegt mein Problem daran, dass ich, wenn, ich den Port 
ändere auch eine Neu-Synchonisation auf die Empfangsdaten machen muss.
Gast #2162642
Lesenswert?

Du glaubst aber nicht etwa dass du auf den jeweiligen Port zugreifen 
kannst indem du auf "Input" zugreifst?  Das geht natürlich nicht.
Möchtest du sowas wie einen Zeiger auf den Port? Das geht nicht, es gibt 
keine Zeiger auf Bits.
Immer wenn du auf den Port zugreifen willst musst du "Auswahl" 
auswerten.

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