Mam problem s LCD 16x2 a spociva v tom
ze potrebujem nastavovat hodnotu 3 miestneho cisla
sposobom stovky desiatky a jednotky pohyb medzi nimi je klavesnicou za pomoci sipiek.sipka do lava sa posunie kurzor do lava a sipka doprava posunie kurzor doprava sipka hore -1 hodnoty na ktorej je kurzor a sipka dole +1 hodnoty na ktorej je kurzor.
A problem spociva v tom ze neviem vykreslit cursor blikajuci na znaku ktory menim cize je “AKTIVNY”
Mate niekto s tymto nejake skusenosti alebo nejaku radu?
To dělá inkrementace, která se většinou zapíná opět v rutině inicializace displeje - po zapsání znaku skáče kurzor automaticky na další pozici. Jestli je to pro tebe lepší řešení, tak inkrementaci vypni, jinak ten kurzor posouvej pomocí těch kláves přímo na místo, kam chceš zapsat. V Céčku je instrukce “lcd_gotoxy”, kterou skočíš přímo na zadanou pozici displeje.
No to právě musíš zapsat jen ten jeden znak a neinkrementovat pozici kurzoru, nebo po zapsání znaku nebo celého řetězce vrátit kurzor na danou pozici a nezapisovat na displej, dokud není třeba na displeji opět něco měnit.
Tak to je ten problem lebo ja chcem nastavovat hodnotu
napr:
1024 nastavit takymto sposobom
zaciatocna hodnota na displayi je : 0000
presuniem kurzor na prvu poziciu nastavim 1
presuniem na druhu poziciu
presuniem na tretiu poziciu nastavim 2
presuniem na stvrtu poziciu a nastavim 4
a preto potrebujem aby tam ten kurzor bol aby som vedel na ktorej pozicii som aktualne
Jestli tě dobře chápu, tak na začátku zapíšeš samé nuly a potom stále dokola vypisuješ řetězec těch tvých 4 čísel.
Abys měl ale kurzor jen na jedné číslici, musel bys zastavit vypisování celého řetězce a zapisovat jen jeden znak, na kterém si necháš kurzor. Potom zase můžeš zapisovat celý řetězec.
Příklad - zapíšu samé nuly, potom stále dokola vypisuji 1024. Když budu chtít 2 změnit na 5, zastavím po stisknutí kurzorové klávesy vypisování celého řetězce, nastavím kurzor do polohy 2 na displeji a změním 2 na 3. Potom vrátím kurzor zpět, 3 změním na 4, vrátím kurzor zpět a změním 4 na 5. Po uplynutí nějakého času nečinnosti se mohu opět vrátit k vypisování celého řetězce.
Tak bych to viděl já, za funkčnost ale neručím, nemám to teď kde vyzkoušet
Jak moc (nebo jestli vůbec) by to chtělo optimalizovat kód už neporadím, chybí mi tam trochu komentáře a hlavně Céčko nějak moc neovládám, programuji hlavně PLC, převážně GE Fanuc, tak jsem radil spíš obecně než konkrétní kód.