Aber weiter oben haben die von "Bitweises Oder" gesprochen. Und das steht nun mal zwischen PORTA und (1<<PA0) . Echt eigenartig. Muss ich den eingang dan extern auf masse ziehen? Wenn ich das nämlich nicht mache, und den eingang meines µC nicht beschalte verarbeitet er das in diesem Programm nämlich als 1.
Also könnt ich mir auch den internen Pull-Up schenken.Code:#include <avr/io.h> #include <stdint.h> int main (void) { DDRA = 0xff; //Das ganze Register A, also PA0...PA7, als Ausgang deklarieren DDRD = 0x00; //Das genze Register D, also PD0...PD7, als Eingang deklarieren while (1) { if ((PIND & (1<<0)) != 0) // ruhig die bitweise Verknüpfung noch // mal in Klammern, also // if ((PIND & (1<<0)) != 0), konkret -> //wenn PD high dann { PORTA |= (1<<0); //PortA0 auf 5V steuern wenn PortD0 ungleich 0, // ausgeschrieben heißt das //PORTA = PORTA | (1<<), wobei '|' //bitweises 'oder' bedeutet } else PORTA &= ~(1<<0); //wenn PortD0 0 ist soll PortA0 0V haben, //das heißt : ~(1<<0) setze Bit0 und invertiere //das Ergebnis, danach mach eine &-Verknüpfung // mit PORTA } //ende der While-schleife return 0; //starte neu }
Habt ihr am anfang auch solche Probleme gehabt?







Zitieren

Lesezeichen