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
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
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.
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
Hi
>sbis PortC,0
bringt nicht den gewünschten Erfolg.
Wenn dann sbis PinC,0
Gruss Uwe
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 ? :-)
vielen Dank nun hat es geklappt.... ich habe ein durcheinander mit PinC und PortC gehabt :-)
war nicht ganz Ernst gemeint, ich schmeiße die Dinger, wenn sie angeschlagen sind, immer direkt weg.
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.