Ein und Ausgänge

Gast #17385
Lesenswert?

Hi

Ich möchte am Port C den Pin0 als Eingang und den Pin1 als Ausgang. Die 
anderen Pins interessieren mich nicht, das heisst ich habe sie als 
ausgang geschaltet.
Nun meine Frage ist, wenn ich den Port einlese (in r16,PINC), wird dann 
nur mein Eingangspin eingelesen oder muss der eingelesene Wert noch 
maskieren?

mfg

Izoard
Gast #17387
Lesenswert?

und dann gibts da noch die Befehle sbic Port, Bit und sbis Port, Bit. Da 
wird die entsprechende Bitadresse gelesen und das Programm kann so 
verzweigt werde.
Beim In-Befehl wird auf jeden Fall ein kompletter 8bit-Wert gelesen.
Gast #17388
Lesenswert?

Vielen Dank für die Antworten.
Ich habe beide Varianten (sbis-lösung und ganzer Porteinlesen)schon 
versucht. Beide funktionieren nicht, wenn ich nur mit einem Port 
arbeiten will!

Wenn ich ein ganzer Port als Ausgang definiere und ein anderer Port als 
Eingang definiere funktioniert mein Programm. Sobald ich aber mit einem 
Port arbeiten möchte, funktioniert mein Prog nicht mehr!!!

Ich definiere den Port C wie folgt:

ldi    r16, 0b11111110
out    DDRC, r16

Somit ist doch Port C Pin 0 mein Eingang und alle anderen sind 
ausgänge!!! stimmt doch?

danach kann ich mit dem Befehl sbis PortC,0 eine Verzweigung machen!

Das komisch ist, dass mein Programm funktioniert, wenn ich es simuliere, 
jedoch wenn ich es auf den Controller lade nicht richtig 
funktioniert....


Vielen Dank

IZOARD
Gast #17390
Lesenswert?

Und was steht in  PORTC? Wenn du nur einen normalen Kontakt nach Masse 
nimmst, sollte min. der interne Pullup aktiviert sein. Geschieht damit, 
indem du in das betreffende Portregister eine 1 an der entsprechenden 
Bitstelle schreibst. Gillt übrigens auch für alle anderen Eingangspins, 
wenn die nicht beschaltet sind. Niemals hochohmig offen lassen.
Also entweder mit Masse verbinden, oder den Pullup aktivieren oder 
gleich als Ausgang definieren. Kann sonst die erstaunlichsten Effekte 
haben.
Letzte Alternative: du hast dir den Portpin schon zerschossen (wer will 
meine Sammelkiste mit teilweise defekten AVRs ? :-)

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren