adi1525 Napisano Sierpień 7, 2014 Udostępnij Napisano Sierpień 7, 2014 Witam, napisałem własny program do obsługi wyświetlacza LCD, inicjacja przebiega poprawnie, ponieważ kursor miga. Nie udaje mi się natomiast wysłać jakiegokolwiek znaku, chodzi mi o wpisanie np litery A na pierwsze miejsce bez żadnych przesunięć. Oto kod: #include <avr/io.h> #include <util/delay.h> /* ############################################################################################## RS = PB0 RW = PB1 E = PB2 DB0 = PDO DB1 = PD1 DB2 = PD2 DB3 = PD3 DB4 = PD4 DB5 = PD5 DB6 = PD6 DB7 = PD7 ##############################################################################################*/ void wyslij(int wartosc, int rs) { PORTB &=~_BV(PB2); // E =0 PORTB &=~_BV(PB1); //RW=0 if (rs==0) { PORTB &=~_BV(PB0); //rs=0 } if (rs==1) { PORTB =_BV(PB0); //rs=1 } PORTD = wartosc; _delay_ms(1); PORTB =_BV(PB2); // E =1 _delay_ms(1); PORTB &=~_BV(PB2); // E =0 _delay_ms(1); } void inicjacja() { _delay_ms(20); wyslij(0b00111100,0); _delay_ms(5); wyslij(0b00111100,0); _delay_ms(1); wyslij(0b00111100,0);// 3 razy wywołanie Function set interfejs 8 bitowy, 2 linie wyslij(0b00000001,0);// czyszczenie wyświetlacza wyslij(0b00000111,0);// przesuwanie napisów wyslij(0b00001111,0);// włączenie wyświetlacza, kursora i migania kursora } int main() { DDRD = 0b11111111; DDRB = 0b11111111; inicjacja(); while(1) { } } Próbowałem przed funkcją while wpisać: wyslij(0b01000001,1);//0b01000001 oznacza literę 'A',1 oznacza rs = 1 czyli zapis _delay_ms(100); i tylko kursor przesuwa się o kilka miejsc w prawo i miga. Cytuj Link do komentarza Share on other sites More sharing options...
Wojciech Sierpień 8, 2014 Udostępnij Sierpień 8, 2014 W funkcji "wyslij": Zamiast: "PORTB =_BV(PB0); //rs=1" powinno być: "PORTB |=_BV(PB0); //rs=1" i zamiast: "PORTB =_BV(PB2); // E =1" powinno być: "PORTB |=_BV(PB2); // E =1". 1 Cytuj Link do komentarza Share on other sites More sharing options...
adi1525 Sierpień 8, 2014 Autor tematu Udostępnij Sierpień 8, 2014 Dzięki Wojciech, teraz wszystko działa 😉 Cytuj Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Dołącz do dyskusji, napisz odpowiedź!
Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!