Hallo Freunde, Hab momentan ein Problem wo ich nicht weiterkomme. Ich möchte durch einen Tastendruck (PORTD) meinen PIN0 an PORTB toggeln. Aber irgendwie klappts nich. Er überspringt immer die if Anweisung. Wär schön, wenn mir einer weiterhelfen könnte. Hier der Code: while(1) { DDRB=0xff; PORTB=0xff; DDRD=0x00; PORTD=0x00; if (PORTD = 0x01) PORTB ^= (1<<PB0); }
Hallo, '=' ist eine Zuweisung... du weist PORTD null zu und anschließend wird der Ausdruck überprüft (ob false oder true... gleich null oder ungleich null). Du willst vermutlich '==' und nicht '='.
PORTD ist immer 0x00. Was du suchst ist PIN. Ich empfehle dir das Tutorial durchzuarbeiten.
und wenn es wirklich eine Taste ist wird sie prellen und das Programm wird auch nicht wie gewünscht funktionieren ...
Um das Prellen wollt ich mich anschließend kümmern. Aber ihr habt mir schonmal nen riesen Schritt weitergeholfen. Der Code müsste folgendermaßen so aussehen richtig? while(1) { DDRB=0xff; PORTB=0xff; DDRD=0x00; if (PORTD == 0x01) PORTB ^= (1<<PB0); }
Wenn tatsächlich der PortAUSGANG untersucht werden soll, ja. Wenn du den EINGANG abfragen willst, wäre - wie schon gesagt - PORTD == 0x01 richtig.
MeinerEiner schrieb: > Wenn tatsächlich der PortAUSGANG untersucht werden soll, ja. > Wenn du den EINGANG abfragen willst, wäre - wie schon gesagt - PORTD == > 0x01 richtig. wenn, dann schon richtig! if (PIND == 0x01)
ARGHL... drecks Copy&Paste ... türlich PIND
Hab ja sogar nochmal hochgeblättert zur Zeile
> Was du suchst ist PIN.
und gedacht "jo, stimmt"
MeinerEiner schrieb: > ARGHL... drecks Copy&Paste ... türlich PIND > Hab ja sogar nochmal hochgeblättert zur Zeile >> Was du suchst ist PIN. > und gedacht "jo, stimmt" take it easy ;)
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.