Hallo zusammen! Ich möchte die Pins PD2-PD7 am PORTD eines ATmega32 zur Ansteuerung eines LCD nutzen. Gleichzeitig brauche ich aber einen aktiven UART (PD0-PD1). Was muss ich dabei beachten? Wie muss der Zugriff auf PORTD erfolgen, damit der UART nicht gestört wird? Kann ich die Bits 2-7 einfach Maskieren, wobei PD0 und PD1 auf null gesetzt werden? Wie muss ich DDRD konfigurieren? Vielen Dank schon mal und viele Grüße, dr-robotnik
Brauchst dich gar nicht drumkümmern. Freigegebene Rx/Tx trennen PortD0/1 von der üblichen Portlogik.
Gibts nicht noch die Pull-Ups an den Pins? Die ~47k gegen Vcc reichen für CMOS schon zum schalten.
Allerdings ist es trotzdem nett, wenn dein LCD Code so geschrieben ist, dass er nicht von ihm benutzte Pins absolut in Ruhe lässt. In dem Moment, in dem du den PCD Code in einem anderen Projekt an anderen Pins wiederverwenden willst, wirst du dir danken, wenn du nicht seltsame Fehler suchen musst.
Schon allein des Prinzips wegen würd ich nur die Portpins setzen, die ich auch benutzen will.
1 | PORTD = (PORTD&0x03) | (LCD_DATA<<2); |
Iirc werden die UART-Pins immer 0 gelesen.
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.