piszilcd(0x01); //czysc lcd
pisz_string((char*)"jakis tekst");
Osobiście pisze w asemblerze , i nie znam podprogramów napisanych w C i te etykiety nic mi nie mówią, ale z tego co widzę to program zachowuje się jak najbardziej poprawnie. Zauważ , że wyświetlacz LCD , nie wymaga odświeżania i raz wpisany tekst będzie tam tkwił aż do , kolejnego czyszczenia / nadpisania ( to obraz zawartości komórek ). W twoim przypadku , czyszczenie LCD zajmie krótką chwilkę i nawet tego nie zauważysz , więc dla sprawdzenia wrzuć jakieś krótkie opóźnienie pomiędzy te dwie instrukcje. ( Pisząc opóźnienie , mam na myśli chociażby dwie pętle zagnieżdżone w sobie )
[EDIT] Aj , spojrzałem na sterownik i bazowo występuje inkrementacja komórki po zapisaniu.
Rozumiem , ze ten tekst wyświetla się ciągiem cały czas ?
Jeśli tak , to spróbuj do obsługi przerwania dopisać :
GIFR |= 1<<INTF0 - Chodzi o ustawienie bitu INTF0 w rejestrze GIFR ( wyzerowanie flagi zgłoszenia przerwania ).