probiers mal so:
PB0 bleibt dabei auf 0 (GND), am Eingang PC0 wird diesmal der Pullup gesetzt.Code:#include <avr/io.h> int main (void) { DDRB = 0x03; PORTB = 0x00; DDRC = 0x00; PORTC = 0x01; while (1) { if ( PINC & (1<<PC0) ) { //Abfrage ob an Pin C0 5V anliegen PORTB |= (1<<PB1); // Pin PB1 auf High } else { PORTB &= ~(1<<PB1); //Pin PB1 auf Low } } }
Funktioniert also genau andersrum wie vorher, hat aber den Vorteil, dass 2 definierte Zustände am Eingang vorhanden sind. Einmal durch die Brücke auf Masse gezogen, ohne Brücke durch den Pullup am PC0 auf 5V hochgezogen.
Alternativ kannst auch nen 50kOhm Pulldown an PC0 hängen und deinen code nochmal probieren![]()







Zitieren

Lesezeichen