mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Ein und Ausgänge


Autor: Izoard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Hermann Kraus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich würde auf jeden Fall maskieren, damit es später nicht irgendwelche 
unerklärlichen Probleme gibt, nur weil du dich entschlossen hast noch 
mehr Pins zu verwenden.

Hermann

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Izoard (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Uwe (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi
>sbis PortC,0
bringt nicht den gewünschten Erfolg.
Wenn dann sbis PinC,0
Gruss Uwe

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ? :-)

Autor: Izoard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vielen Dank

nun hat es geklappt....
ich habe ein durcheinander mit PinC und PortC gehabt :-)

Autor: Hermann Kraus (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>wer will meine Sammelkiste mit teilweise defekten AVRs?
Was für AVRs sind das und was kosten die?

Autor: crazy horse (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
war nicht ganz Ernst gemeint, ich schmeiße die Dinger, wenn sie 
angeschlagen sind, immer direkt weg.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.