bergowitch
18.09.2005, 08:14
Hallo ich kämpfe immer noch mit C. In der ASURO.c habe ich folgende Zeile gefunden:
PORTD = (PORTD &~ ((1 << PD4) | (1 << PD5))) | left_dir;
nehmen wir einmal an left_dir wäre 1 (FWD => vorwärts)
und PORTD 00100000
Dann ergibt: ((1 << PD4) | (1 << PD5)) 00110000
Dies mit PORTD &~ verknüpft ergibt
PortD 00100000
und nicht (&~) 00110000
ergibt 11011111
nun noch oder 1 => erbibt das: 11111111
Das kann ja nicht das gewünschte Ergebnis sein!?
Kann mir jemand erklären wo mein Denkfehler ist?
Zum ASURO eine Zusatzfrage: Die Motorbrücke funktioniert doch so wie die vom RN-Control. Das würde bedeuten, dass -will man vorwärts fahren - P4 1 sein muss und D5 0 sein soll. Richtig?
Gruß
Stefan
PORTD = (PORTD &~ ((1 << PD4) | (1 << PD5))) | left_dir;
nehmen wir einmal an left_dir wäre 1 (FWD => vorwärts)
und PORTD 00100000
Dann ergibt: ((1 << PD4) | (1 << PD5)) 00110000
Dies mit PORTD &~ verknüpft ergibt
PortD 00100000
und nicht (&~) 00110000
ergibt 11011111
nun noch oder 1 => erbibt das: 11111111
Das kann ja nicht das gewünschte Ergebnis sein!?
Kann mir jemand erklären wo mein Denkfehler ist?
Zum ASURO eine Zusatzfrage: Die Motorbrücke funktioniert doch so wie die vom RN-Control. Das würde bedeuten, dass -will man vorwärts fahren - P4 1 sein muss und D5 0 sein soll. Richtig?
Gruß
Stefan