Forum: Mikrocontroller und Digitale Elektronik PORTD als Eingang - Probleme


von achim b. (goodfly)


Lesenswert?

Hallo,
ich habe folgenddes Problem:
wenn ich beim ATtiny2313 einen Pin von PortD als Eingang schalte erhalte 
ich keinen definierten Zustand?
BSP:


PORTD = (1<<6); // Pull up D6 einschalten
if PIND &= (1<<6){LED an}
else {LED aus}

Ergebnis: wenn PIND 6 = HIGH ( taster nicht gedrückt) geht die LED mal 
an und aus recht zufällig??

benutze ich PORTB funktionierts einwandfrei.
Ich hab schon verschiedene PINS auf PORTD probiert, auf allen das selbe.

bin völlig ratlos und hoffe auf hilfe!!
Ich hoffe ich konnte das Problem richtig beschreiben. Da ich nur das 
Problem auf PORTD hab muss die Abfrage korrekt sein. (Ist ja eigentlich 
auch nicht schwierig) was ist an PORTD anders?

von Joe (Gast)


Lesenswert?

Man muss den Port auch als Eingang definieren,
oder hab ich da was übersehen?

von achim b. (goodfly)


Lesenswert?

Sind die Ports nicht default auf Eingang und müssen nur als Ausgang 
definiert werden?

von Stefan E. (sternst)


Lesenswert?

achim b. schrieb:
> Da ich nur das
> Problem auf PORTD hab muss die Abfrage korrekt sein.

Diese Schlussfolgerung ist nicht richtig.

Und die Abfrage unter "BSP:" ist schon mal falsch.
Ist ja aber auch nur irgendein eingetippter Märchen-Code. Wer weiß 
schon, wie der echte aussieht.

von TestX .. (xaos)


Lesenswert?

dir ist schon klar was "und gleich" (&=) macht ?

so sollte es gehen :
1
if(PIND & (1<<PD6)){
2
  // irgendwas machen..
3
}

von achim b. (goodfly)


Lesenswert?

@ Andi D.

bin ich doof!!!!

Danke für die schnelle Hilfe

von achim b. (goodfly)


Lesenswert?

Jetzt wundert mich nur, dass der stuss an PORTB funktioniret hat - wohl 
zufall gewesen??

von Steffen (Gast)


Lesenswert?

achim b. schrieb:
> Jetzt wundert mich nur, dass der stuss an PORTB funktioniret hat - wohl
> zufall gewesen??

mich wundert eher das er das kompilieren bekommen hat.

von achim b. (goodfly)


Lesenswert?

Ja hat er sogar ohne Fehler oder Warnung.
Auf jedenfall jetzt gehts ohne probleme :)

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
Noch kein Account? Hier anmelden.