Witam
Mam LCD http://www.lispol.pl/index.php?site=detail&prid=446
dokładnie ten
I napisałem ten oto kod, ale niestety nie działa. Nie wiem co źle robie, dlatego poprosiłbym o sprawdzenie, nie o gotowca, tylko sprawdzenie i wskazaniu gdzie tkwi błąd, gdyż to praca inżynierska a promotora nie ma w tej chwili w kraju
.
Dodam, że Enabled podłączyłem do portu B RB0
a RS do RB1. Jeśli to kwestia czasów, to poprosze o gotową odpowiedź, bo sam nie moge dojść co z nimi, wydaje mi się, że czasy (delay) są dobre, bo w końcu o odczycie decyduje stan linii enabled. Wcześniej po wykonaniu częśc kodu z innymi czasami znikał rząd kwadracików na góze.
Pozdrawiam i dziękuje za pomoc
DDRC = 0xff;
DDRB = 0x03;
_delay_ms(20);
PORTB = 0x00;
_delay_ms(10);
PORTC = 0x02; // NA 4 BITY
_delay_ms(10);
PORTB = 0x01; // E na góre
_delay_ms(5);
PORTB=0x00; //enable w dół
_delay_ms(2);
PORTC=0x02; //function set 4 bity 2 linie pierwsza czcionka
_delay_ms(5);
PORTB = 0x01;
_delay_ms(2);
PORTB=0x00;
_delay_ms(5);
PORTC=0x00;
_delay_ms(2);
PORTB = 0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X00; //WŁĄCZ
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X0E; // DALSZA CZESC
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X00; // increment
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X06;
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB = 0X02; //zmien RS
_delay_ms(2);
PORTC = 0X05; //wysłanie znaku "S"
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0x03;
_delay_ms(2);
PORTB=0x03;
_delay_ms(5);
PORTB=0x02;
_delay_ms(2);
DDRC = 0x3f;
Mam LCD http://www.lispol.pl/index.php?site=detail&prid=446
dokładnie ten
I napisałem ten oto kod, ale niestety nie działa. Nie wiem co źle robie, dlatego poprosiłbym o sprawdzenie, nie o gotowca, tylko sprawdzenie i wskazaniu gdzie tkwi błąd, gdyż to praca inżynierska a promotora nie ma w tej chwili w kraju
Dodam, że Enabled podłączyłem do portu B RB0
a RS do RB1. Jeśli to kwestia czasów, to poprosze o gotową odpowiedź, bo sam nie moge dojść co z nimi, wydaje mi się, że czasy (delay) są dobre, bo w końcu o odczycie decyduje stan linii enabled. Wcześniej po wykonaniu częśc kodu z innymi czasami znikał rząd kwadracików na góze.
Pozdrawiam i dziękuje za pomoc
DDRC = 0xff;
DDRB = 0x03;
_delay_ms(20);
PORTB = 0x00;
_delay_ms(10);
PORTC = 0x02; // NA 4 BITY
_delay_ms(10);
PORTB = 0x01; // E na góre
_delay_ms(5);
PORTB=0x00; //enable w dół
_delay_ms(2);
PORTC=0x02; //function set 4 bity 2 linie pierwsza czcionka
_delay_ms(5);
PORTB = 0x01;
_delay_ms(2);
PORTB=0x00;
_delay_ms(5);
PORTC=0x00;
_delay_ms(2);
PORTB = 0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X00; //WŁĄCZ
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X0E; // DALSZA CZESC
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X00; // increment
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0X06;
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB = 0X02; //zmien RS
_delay_ms(2);
PORTC = 0X05; //wysłanie znaku "S"
_delay_ms(2);
PORTB=0x01;
_delay_ms(5);
PORTB=0x00;
_delay_ms(2);
PORTC = 0x03;
_delay_ms(2);
PORTB=0x03;
_delay_ms(5);
PORTB=0x02;
_delay_ms(2);
DDRC = 0x3f;