Ja doch doch! ;-) Der Peter Fleury hat ja gesagt, dann man die RW
Leitung anschließen soll :-) Also habe ich das auch gemacht. In der
lcd_waitbusy(void) brauch man das Signal ja...
Ich hab jetzt einfach mal spaßeshalber die lcd_waitbusy(void) zu
testzwecken umgeschrieben...
1 | static uint8_t lcd_waitbusy(void)
|
2 |
|
3 | {
|
4 | register uint8_t c;
|
5 |
|
6 | /* wait until busy flag is cleared */
|
7 | //while ( (c=lcd_read(0)) & (1<<LCD_BUSY)){}
|
8 |
|
9 | /* the address counter is updated 4us after the busy flag is cleared */
|
10 | _delay_ms(1000);
|
11 |
|
12 | /* now read the address counter */
|
13 | //return (lcd_read(0)); // return address counter
|
14 | return 0;
|
15 |
|
16 | }/* lcd_waitbusy */
|
und meine Main habe ich auch jetzt modifiziert.
1 | #ifndef F_CPU
|
2 | #define F_CPU 8000000UL
|
3 | #endif
|
4 |
|
5 | #include <stdlib.h>
|
6 | #include <avr/io.h>
|
7 | #include <util/delay.h>
|
8 | #include "lcd.h"
|
9 |
|
10 | int main(void)
|
11 | {
|
12 | /* Initialisiere Display, Cursor aus */
|
13 | lcd_init(LCD_DISP_ON_CURSOR_BLINK);
|
14 | PORTD &= 0xFE;
|
15 |
|
16 | /* loesche das LCD Display und Cursor auf 1 Zeile, 1 Spalte */
|
17 | lcd_clrscr();
|
18 | PORTD &= 0xFC;
|
19 |
|
20 | /* String auf Display anzeigen */
|
21 | lcd_puts("0");
|
22 | PORTD &= 0xF8;
|
23 |
|
24 | while(1);
|
25 | }
|
Die Null bekomme ich öhm nicht wirklich zusehen. Aber der Curser blinkt!
;-)
Ich hab versuch ein Bild zu machen, allerdings sieht man nicht was ich
haben will... Ich versuch das jetzt mal anders zu zeigen, wie der
Display das anzeigt.
x000x
0xxx0
0xx00
0x0x0
x000x
0xxx0
0xx00
0x0x0
Sprich 5x8 :) und da nehmen Blink munter der der Curser