Moin ich hab in meiner Bastel-Kiste ein 20 Zeichen 4 Zeilen Display gefunden mit dem 4478 Controller drauf. und ich dachte mir das man damit bestimmt nette sachen bauen kann als wollte ich mal testen ob es noch funktioniert. nach kurzen anfangschwierigkeiten hab ichs dann hinbekommen das in zeile 1 und 3 ein schwarze balken ist. also erst eindruck schonmal gut und wollte ich mal kurz nen text ausgeben. irgendwie hat die initalisierung vom tuturial hier nicht bei mir geklappt. Ich verwende einen ATMEGA 32 und hab ein kleines programm geschrieben ich hab noch nie ein Display im 4 bit modus betrieben und hab ka ob dat überhaupt so stimmt.
1 | #include <avr/io.h> |
2 | //#include "lcd-routines.h"
|
3 | #include <util/delay.h> |
4 | |
5 | int main(void) |
6 | {
|
7 | _delay_ms(200); |
8 | _delay_ms(200); |
9 | _delay_ms(200); |
10 | |
11 | DDRD = 0xff; |
12 | |
13 | |
14 | |
15 | PORTD = 0x03; |
16 | PORTD |= (1<<PD5); |
17 | _delay_ms(10); |
18 | PORTD &= ~(1<<PD5); |
19 | _delay_ms(10); |
20 | |
21 | PORTD = 0x03; |
22 | PORTD |= (1<<PD5); |
23 | _delay_ms(10); |
24 | PORTD &= ~(1<<5); |
25 | _delay_ms(10); |
26 | |
27 | |
28 | PORTD = 0x03; |
29 | PORTD |= (1<<PD5); |
30 | _delay_ms(10); |
31 | PORTD &= ~(1<<5); |
32 | _delay_ms(10); |
33 | |
34 | |
35 | PORTD = 0x02; |
36 | PORTD |= (1<<PD5); |
37 | _delay_ms(10); |
38 | PORTD &= ~(1<<5); |
39 | _delay_ms(10); |
40 | |
41 | |
42 | //
|
43 | PORTD = 0x02; |
44 | PORTD |= (1<<PD5); // 4bit operation |
45 | _delay_ms(10); |
46 | PORTD &= ~(1<<5); |
47 | _delay_ms(10); |
48 | |
49 | |
50 | PORTD = 0x08; |
51 | PORTD |= (1<<PD5); //und 5x8 matrix |
52 | _delay_ms(10); |
53 | PORTD &= ~(1<<5); |
54 | _delay_ms(10); |
55 | |
56 | //
|
57 | |
58 | PORTD = 0x00; |
59 | PORTD |= (1<<PD5); //Display, Cursor, Blink on |
60 | _delay_ms(10); |
61 | PORTD &= ~(1<<5); |
62 | _delay_ms(10); |
63 | |
64 | |
65 | PORTD = 0x0F; |
66 | PORTD |= (1<<PD5); // |
67 | _delay_ms(10); |
68 | PORTD &= ~(1<<5); |
69 | _delay_ms(10); |
70 | |
71 | |
72 | PORTD = 0x00; |
73 | PORTD |= (1<<PD5); // |
74 | _delay_ms(10); |
75 | PORTD &= ~(1<<5) ; |
76 | _delay_ms(10); |
77 | |
78 | |
79 | PORTD = 0x01; |
80 | PORTD |= (1<<PD5); |
81 | _delay_ms(10); |
82 | PORTD &= ~(1<<5); |
83 | _delay_ms(10); |
84 | |
85 | |
86 | |
87 | |
88 | while(1) |
89 | {
|
90 | }
|
91 | |
92 | return 0; |
93 | }
|