Hallo liebes Forum,
habe hier ein Wintek WD-H3224V welches ich gerne über einen ATMEGA1284P
ansteuern würde. Das Problem ist, das ich wenn ich über diesen
1 |
|
2 | WDH3224_FRAME_SET_HIGH();
|
3 |
|
4 |
|
5 | WDH3224_LOAD_SET_HIGH();
|
6 | PORTB |= 0x0F;
|
7 | WDH3224_LOAD_SET_LOW();
|
8 |
|
9 |
|
10 | WDH3224_CLOCK_SET_HIGH();
|
11 |
|
12 | WDH3224_CLOCK_SET_LOW();
|
13 |
|
14 | WDH3224_FRAME_SET_LOW();
|
15 | WDH3224_M_PORT ^= (1<<WDH3224_M);
|
Code veruche das display Anzusprechen, ich nur eine komplette linie in
der ersten zeile gesetzt bekomme, sende ich das selbe noch mal, kommt in
der nächsten zeile eine schwarze Linie und es ist auch egal ob an den
Datenpins was anliegt oder nicht.
Nach anlegen der Spannung ist das Display komplett schwarz, alle Pixel
gesetzt, dann werden die Steuerleitungen initialisiert:
1 | WDH3224_FRAME_SET_OUTPUT();
|
2 | WDH3224_FRAME_SET_LOW();
|
3 |
|
4 | WDH3224_NDISPOFF_SET_OUTPUT();
|
5 | WDH3224_NDISPOFF_SET_LOW();
|
6 |
|
7 | WDH3224_M_SET_OUTPUT();
|
8 | WDH3224_M_SET_LOW();
|
9 |
|
10 | WDH3224_LOAD_SET_OUTPUT();
|
11 | WDH3224_LOAD_SET_LOW();
|
12 |
|
13 | WDH3224_CLOCK_SET_OUTPUT();
|
14 | WDH3224_CLOCK_SET_LOW();
|
15 |
|
16 | DDRB |= (1<<PB0) | (1<<PB1)| (1<<PB2)| (1<<PB3);
|
17 | WDH3224_NDISPOFF_SET_HIGH();
|
18 | WDH3224_NDISPOFF_SET_LOW();
|
19 | WDH3224_NDISPOFF_SET_HIGH();
|
und das Display ist komplett gelöscht, danach kommt oben angefügte
ansteuerung.
Ich habe vermutlich irgendwo ein timing- oder logik-problem.
Ich bin davon ausgegangen, das mit obigem Code nur ein bzw. vier Pixel
in der ersten Reihe gesetzt wird/werden.
"M" wird übrigens mit 65Hz getogglet
1 | ISR(TIMER0_OVF_vect)
|
2 | {
|
3 | WDH3224_M_PORT ^= (1<<WDH3224_M);
|
4 | }
|
Ich hoffe mal mir kann mit diesen Infos jemand Helfen.
Liebe Grüße Christopher