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
Wenn es "nicht klapp" dann liegt das nicht an dem gezeigten Code, der ist korrekt so. Für weitere Hinweise müsste "klappt nicht" näher definiert werden.
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.
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.