Hallo,
ich bin noch recht neu in diesem Bereich deshalb brauche etwas Hilfe.
Ich habe hier ein DOGM204W-A Display von EA, welches ich über den 8 Bit
Mode mit einem Atmega 328P ansteure. Ich habe die Pins PD0 - PD7 an die
Pins D0 - D7, des Displays angeschlossen (PD0 an D0 usw.) und den Enable
Pin an PB0 angeschlossen. Der Rest ist wie im 8-Bit Beispiel vom
Datasheet angeschlossen.
Jetzt zum Problem:
Ich bekomme es einfach nicht zum laufen/ initialisiert.
(Es erscheint kein blinkender Cursor.)
Hier mein C-Code:
1 | #define F_CPU 10000000UL
|
2 |
|
3 | #include <avr/io.h>
|
4 | #include <util/delay.h>
|
5 |
|
6 | void InitDisplay();
|
7 | void SendData(int Data);
|
8 |
|
9 | int main(void)
|
10 | {
|
11 | DDRD=0xFF;
|
12 | DDRB=0xFF;
|
13 | InitDisplay();
|
14 | while(1)
|
15 | {
|
16 | }
|
17 | }
|
18 |
|
19 | void InitDisplay(){
|
20 | _delay_ms(200);
|
21 | SendData(0x3A);//1.Command
|
22 | SendData(0x09);//2.
|
23 | SendData(0x06);//3.
|
24 | SendData(0x1E);//4.
|
25 | SendData(0x39);//5.
|
26 | SendData(0x1B);//6.
|
27 | SendData(0x6E);//7.
|
28 | SendData(0x57);//8.
|
29 | SendData(0x72);//9.
|
30 | SendData(0x38);//10.
|
31 | SendData(0x0F);//11.
|
32 | PORTB=0;
|
33 | PORTD=0;
|
34 | }
|
35 |
|
36 | void SendData(int Data){
|
37 | PORTD=Data;
|
38 | _delay_ms(1);
|
39 | PORTB=0x01;//Enable 1
|
40 | _delay_ms(1);
|
41 | PORTB=0x00;//Enable 0
|
42 | _delay_ms(1);
|
43 | }
|
Wo liegt der Fehler?
Es gibt hier schon ähnliche Posts, diese haben mir aber nicht wirklich
weitergeholfen.