Gast
#75564
Hi,
nach der Initialisierung vom LCD wollte ich das Display noch löschen,
aber jedesmal wenn ich den Reset-Taster am Board drücke, spring der
Cursor eine Stelle weiter. Ist das normal, wenn ich den Cursor nicht
sage wo er hin soll?
Auch weiss ich nicht, warum der Cursor an der 2.Position erscheint.
void clear_lcd(void)
{
//busywait(); //Warten bis Busy=0
instruction_write(); //RS und RW =0
PORTD|=0x00; //D5=1 <-High-Nibble
lcd_enable(); //E=1 pause E=0
PORTD|=0x01; //N=1 und F=0 <-Low-Nibble
lcd_enable();
_delay_loop_2(1000);
}
main(){
lcdinit();
clear_lcd();
}
Kann das daran liegen, dass ich das Busy-Flag noch nicht kontrolliert
habe?
Bin mir mit Busy_wait noch nicht ganz sicher, vielleicht kann mir
jemand sagen, ob die Funktion dafür passt:
void busywait(void)
{
outp(0x00,DDRD); //DDRC löschen
outp(DDRD|=0x07,DDRD);
PORTD &= RS; //RS=0
PORTD |= RW; //RW=1
_delay_loop_2(1000);
while (bit_is_clear(PIND,PIND3));
}