hallo, ich möchte mein Display initialisieren und ein Byte darauf ausgeben. Halte mich bei der Initialisierung wie im Datenblatt angegeben. Trotzdem zeigt es nichts an. Kann mir da jemand evt. weiterhelfen, ob doch was falsch mache? Display ist korrekt an den Pins abgeschlossen, das habe ich schon überprüft. Benutze dazu einen atmega48. habe folgendes Display: http://display-elektronik.de/DEM24251SYH-PY.pdf #define F_CPU 8000000L #include <avr/io.h> #include <util/delay.h> #include <defs.h> /* PORTB: PB0..PB7 -> DB0..DB7 PORTC: PC0 - RS (Register Select) PC1 - R/W PC2 - Enable R/W */ int main(void) { tUI8 zaehler; /* PORTB alles Ausgänge */ DDRB = 0xFF; /* PORTC alles Ausgänge */ DDRC = 0xFF; PORTC = 0x00; PORTB = 0x00; /*warte 30ms */ for(zaehler=0;zaehler < 30; zaehler++) { _delay_ms(1); } /* Enable */ PORTC |= (TRUE << PC2); _delay_ms(1); /* Funktion Set */ /* 2 Linien, Display On */ PORTB = (TRUE<<PB5) | (TRUE<<PB4) | (TRUE<<PB3) | (TRUE<<PB2); /*warten */ _delay_us(100); /*Display On, Cursor On, Blinking On */ PORTB = (TRUE<<PB3) | (TRUE<<PB2) | (TRUE<<PB1) | (TRUE<<PB0); /*warten */ _delay_us(100); /* Display Clear */ PORTB = (TRUE << PB0); _delay_ms(2); /* Entry mode */ PORTB = (TRUE<<PB2) | (TRUE<<PB1); /* warten */ _delay_us(100); PORTB = 0x00; _delay_ms(1); /* Datenregister auswählen */ PORTC |= (TRUE << PC0); /* Datenbyte schreiben */ PORTB = 0b00000011; _delay_us(100); /* Übertrag aus */ PORTC = 0x00; PORTB = 0x00; return 0; }
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.