Atmega Bascom czyszczenie pojedynczych znaków na LCD


Cześć
Wielokrotnie w moich projektach pojawia się problem z pozostającymi znakami na wyświetlaczu LCD.Na przykład jedną z funkcji jest regulacja jasności wyświetlacza LCD.Utworzyłam zmienną typu byte,dwie linie pracujące jako plus i minus i wyświetlam na LCD wartość zmiennej(od zera do 255).Jeśli przekroczę wartość 99 a później chcę wartość zmniejszyć do liczby dwucyfrowej trzecia cyfra czyli zero pozostaje na wyświetlaczu.Polecenie CLS w głównej pętli programu powoduje miganie wyświetlacza.Znalazłem jeszcze opcję wpisywania spacji w miejsce wyświetlania zmiennej a później w to samo miejsce na LCD wpisanie wartości,wygląda to mniej więcej tak:

locate 1,1,
lcd "jasnosc "
locate 1,1
lcd "jasnosc" ; zmienna

Ale powyższy sposób powoduje miganie wyniku zmiennej.

Czy koledzy mają jakiś sposób na wyeliminowanie tego problemu.
Jednocześnie zapytam, czy w Bascomie istnieje możliwość czyszczenia pojedynczych linii LCD, lub pojedynczych znaków.




Portret użytkownika matrix

Re: Atmega Bascom czyszczenie pojedynczych znaków na LCD

Jeśli chcesz wyczyścić pojedynczy znak na lcd to nie używaj funkcji typu cls tylko ów znak nadpisuj za pomocą pustego miejsca.

Dajmy na to chcesz wyświetlić zmienną która zmniejsza się z trzech znaków do dwóch to piszesz tak:

lcd "zmienna=" ; zmienna ; "  "

Jeśli na końcu ciągu wstawisz dwa puste pola to nadpiszą Ci to co było na końcu i zmienna zawsze będzie wyświetlana prawidłowo.

Co do czyszczenia pojedynczych znaków to znajdujesz poleceniem locateX,Y znak do wyczyszczenia i wpisujesz na jego miejsce pusty znak czyli lcd" " a całą linię czyścisz wpisując linię pustych znaków.

Portret użytkownika glecki

No tak.Kombinowałem z

No tak.Kombinowałem z zależnościami, ale wychodziła kupa kodu.Proste rozwiązania są najlepsze.Dziękuję koledze Matrix za podpowiedź.

-

Grzegorz