Hallo, ich möchte PORTA eines AVR als Eingang und als Ausgang verwenden. Dies wird durch ein if-Anweisung entschieden. Leider funktioniert dies nicht immer. if(...) { PORTA = 0x00; DDRC = 0x00; //Eingangsdaten holen IN_DATEN= PORTA; ... } else { PORTA = 0x00; DDRC = 0xFF; //Ausgangsdaten senden PORTA = OUT_DATEN; ... } weiss jemand, warum das Senden der OUT_DATEN nicht funktioniert Vielen Dank Gruß
Danke das stimmt, war tippfehler. Aber das Senden der Daten funktioniert trotzdem nicht!
du mußt ddra ansprechen. ddra = 0x00; port a = eingang ddra = 0xff; port a = ausgang je nachdem wie schnell dein uC läuft kann es sinnvoll sein noch ein paar nops zwischen dem zuweisen von ddra und porta zu setzen. und nimm fürs einlesen von porta besser pina.
>Es sollte DDRA heisen :-) Also PORTA als Ausgang definieren
Und, weiß Dein Compiler das auch?
Ja, die Übesetzung ging fehlerfrei... aber trotzdem bekomme ich immer 0xFF am PORT-Ausgang.
Dann solltest Du mal Deinen ganzen Code zeigen. Mit PORTA = 0x00 kann kein 0xff mehr vom AVR kommen. Externe Pullup? OUT_DATEN == 0xff?
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.