Gast
#1149072
Moin, möchte in AVR die Abfrage eines Kippschalters realisieren. Habe hierzu folgenden Code verfaßt: void vrFahrt(void) { // SCHALTERSTELLUNG ABFRAGEN if ( ( ( Schalter & (1<<Vor) | (1<<Zur);) ) ==0 ) // BEIDE SIGNALE NULL { verzoeger_ms(DebZeit); if ( ( ( Schalter & (1<<Vor) | (1<<Zur); ) ==0) // BEIDE SIGNALE NULL { Richtung = (1<<InpVor) | (1<<InpZur); // BEIDE SIGNALE IMMER NOCH NULL return; } } if ( (Schalter & (1<<Vor)) !=0 ) // IST VORWÄRTS 1? { verzoeger_ms(DebZeit); if ( (Schalter & (1<<Vor)) !=0 ) // IST IMMER NOCH VORWÄRTS 1? { Richtung = (1<<InpVor); // VORWÄRTSFAHRT FÜR H-BRÜCKE return; } } if ( (Schalter & (1<<Zur)) !=0 ) // IST RÜRCKWÄRTS 1? { verzoeger_ms(DebZeit); if ( (Schalter & (1<<Zur)) !=0 ) // IST IMMER NOCH RÜCKWÄRTS 1? { Richtung = (1<<InpZur); // RÜCKWÄRTSFAHRT FÜR H-BRÜCKE return; } } return; } Der Compiler meckert jedesmals bei den if-Kriterien, z. B. (Schalter & (1<<Vor)) !=0. Gibt es vllt für sowas eine fertige Routine? ( Handelt sich um einen AN-AUS-AN-Kippschalter). Oder wie kann ich andersweitig realisieren ... Grüße