Hi ich hab ein kleines Problem mit dem oben genannten LCD. Ich habe das
Teil auf einem Breadboard mit meinem Atmega32 verbunden. Verbindungen
stehen.. Spannungen liegen an.. Habe ich alles gemessen und geprüft. Ich
weiß nicht, was noch falsch sein könnte außer meinem Code. Ich habe das
ganze mal in einer Consolenanwedungn in C laufen lassen und es sollte
meiner Meinung nach funktionieren. Der LCD läuft im 4bit Mode..
Das passende Datenblatt findet ihr hier:
http://www.e-lab.de/diverse/DEM20486.pdf
Hier kommt mein Programmcode und ich wollte fragen, ob ihr mir weiter
helfen könntet.
hier die Funktionen die ich Verwende..
1 | void lcd_enable()
|
2 | {
|
3 | LCD_PORT |= (1<<LCD_ENABLE);
|
4 | _delay_ms(10);
|
5 | LCD_PORT &= ~(1<<LCD_ENABLE);
|
6 | }
|
7 |
|
8 | void lcd_write(unsigned char c)
|
9 | {
|
10 | //sending first 4bit with lcd_enable
|
11 | LCD_PORT = (LCD_PORT & ~0xf0)|(c & ~0x0f);
|
12 | lcd_enable();
|
13 | //shift by 4 to get the lower bit which will be send next
|
14 | c = (c<<4);
|
15 | LCD_PORT = (LCD_PORT & ~0xf0)|(c & ~0x0f);
|
16 | lcd_enable();
|
17 |
|
18 | }
|
19 |
|
20 | void lcd_command(unsigned char c)
|
21 | {
|
22 | LCD_PORT &= ~(1<<LCD_RS);
|
23 | lcd_write(c);
|
24 | }
|
25 |
|
26 | void lcd_data(unsigned char c)
|
27 | {
|
28 | LCD_PORT |= (1<<LCD_RS);
|
29 | lcd_write(c);
|
30 | }
|
Ein und ausgänge sind natürlich auch richtig gesetzt.. hier meine main
Funktion mit einer blinkenden LED um zu sehen ob der richtige
Programmcode drauf ist variiere ich immer mit den Zeiten..
1 | int main()
|
2 | {
|
3 | unsigned char init[5] = {0x20, 0x2C, 0x0F, 0x01, 0x06};
|
4 | unsigned char i;
|
5 |
|
6 | for(i = 0; i < 5; i++)
|
7 | {
|
8 | lcd_command(init[i]);
|
9 | }
|
10 |
|
11 | lcd_data('H');
|
12 | lcd_data('i');
|
13 |
|
14 | //test led
|
15 | DDRA = 0xff;
|
16 | while(1)
|
17 | {
|
18 | PORTA = 0x01;
|
19 | _delay_ms(100);
|
20 | PORTA = 0x00;
|
21 | _delay_ms(100);
|
22 | }
|
23 | return 0;
|
24 | }
|
So das war der Code schonmal. Sonst hätte ich nur zu sagen, das ich die
Hintergrundbeleuchtung weggelassen habe, das sollte aber nicht zum
Problem werden oder?? Meiner Erfahrung her sollte ein LCD aufblinken,
wenn man es mit Spannung versorgt, aber es zeigt sich bei mir keine
Reaktion.
Gruß und ich hoffe auf eure Hilfe. Danke schonmal.