LCD kijelző probléma
LCD kijelző probléma
Üdv mindenkinek, olyan problémába ütköztem, hogy 16*2-es LCD-n nem jó helyen jelennek meg a kiírandó karakterek.
Bascomban írom a programot "locate..." használatával. A hiba nem rögtön jelentkezik. A program egy timer ( visszaszámláló), és ahogy múlnak a percek van hogy oda nem illő karakterek, vagy egy sorral lentebb lévő karakterek jelennek meg a fentebbi sorban, majd az egész kijelzőn random karakterek jelenek meg, vagy minden eltűnik. Cls paranccsal nem tudom megszüntetni a problémát.
Abban kérném a segítségeteket hogy hogyan lehetne ezt a jelenséget megszüntetni vagy orvosolni ha megjelenne a kijelzőn.
Kijelző:1602A http://oomlout.com/parts/LCDD-01-datasheet.pdf 4 bites interfészen
AVR: ATMEGA8A
Bascomban írom a programot "locate..." használatával. A hiba nem rögtön jelentkezik. A program egy timer ( visszaszámláló), és ahogy múlnak a percek van hogy oda nem illő karakterek, vagy egy sorral lentebb lévő karakterek jelennek meg a fentebbi sorban, majd az egész kijelzőn random karakterek jelenek meg, vagy minden eltűnik. Cls paranccsal nem tudom megszüntetni a problémát.
Abban kérném a segítségeteket hogy hogyan lehetne ezt a jelenséget megszüntetni vagy orvosolni ha megjelenne a kijelzőn.
Kijelző:1602A http://oomlout.com/parts/LCDD-01-datasheet.pdf 4 bites interfészen
AVR: ATMEGA8A
Re: LCD kijelző probléma
Okok:
- LCD nincs tápszűrve (100nF/10uF)
- kontraszt/háttér PWM alapon megy (digit/valódi potméter jobb)
- valami összezajongja az adatvonalakat (felhúzóellenállás szükséges lehet)
- megszakításkezelés bezavar
A kiíratást szubrutinban végezném, melyben a kiíratási adatot byval paraméterrel adnám át (lokális copy lesz, ami nem változik meg)
- LCD nincs tápszűrve (100nF/10uF)
- kontraszt/háttér PWM alapon megy (digit/valódi potméter jobb)
- valami összezajongja az adatvonalakat (felhúzóellenállás szükséges lehet)
- megszakításkezelés bezavar
A kiíratást szubrutinban végezném, melyben a kiíratási adatot byval paraméterrel adnám át (lokális copy lesz, ami nem változik meg)
http://www.tavir.hu - a gazda
Re: LCD kijelző probléma
Üdv nem vagyok szakértő, ki tudnád nekem fejteni, hogy ez hogyan tudnám megvalósítani?Robert írta:A kiíratást szubrutinban végezném, melyben a kiíratási adatot byval paraméterrel adnám át (lokális copy lesz, ami nem változik meg)
Pluszinfó cls parancsnál csinálja a legsűrűbben hogy rossz sorba írja ki.
Re: LCD kijelző probléma
A CLS nem más:
Home()
és kirak 80 db space-t.
Azaz nem a memória/paraméterátadás zavar be (Byref/byval).
Erre valószínű hibaok:
- az LCD vezérlő/adatláb másutt kezelésre kerül,
- hosszú/zajérzékeny a panel és az LCD közti kábel,
- tegyél az 1/2 láb közé 100nF kerámiakondit (a karakteres kijelzőre forraszd fel).
Home()
és kirak 80 db space-t.
Azaz nem a memória/paraméterátadás zavar be (Byref/byval).
Erre valószínű hibaok:
- az LCD vezérlő/adatláb másutt kezelésre kerül,
- hosszú/zajérzékeny a panel és az LCD közti kábel,
- tegyél az 1/2 láb közé 100nF kerámiakondit (a karakteres kijelzőre forraszd fel).
http://www.tavir.hu - a gazda
Re: LCD kijelző probléma
Köszi, kipróbálom és megírom mi lett.
Van hogy kikapcsolt kurzornál egyszer csak megjelenik a kurzor.
Esetleg van valamilyen parancs, ami törli az lcd teljes memóriáját, mintha ki lett volna kapcsolva és újra be? A display on/off már kipróbáltam.
Van hogy kikapcsolt kurzornál egyszer csak megjelenik a kurzor.
Esetleg van valamilyen parancs, ami törli az lcd teljes memóriáját, mintha ki lett volna kapcsolva és újra be? A display on/off már kipróbáltam.
Re: LCD kijelző probléma
Sajnos nem segített, ugyan azok a hibák.
Egyébként a programban van egy timer általi megszakítás, és egy subrutin meghívás.
A timer minden másodpercben, a subrutin sokszor do loop ban fut 4MHz-en, tehát másodpercenként nagyon sokszor.
Ezek közül okozhatja valamelyik?
Egyébként a programban van egy timer általi megszakítás, és egy subrutin meghívás.
A timer minden másodpercben, a subrutin sokszor do loop ban fut 4MHz-en, tehát másodpercenként nagyon sokszor.
Ezek közül okozhatja valamelyik?
Re: LCD kijelző probléma
Az túl gyors, és a processzor nem bírja.Egyébként a programban van egy timer általi megszakítás, és egy subrutin meghívás.
A timer minden másodpercben, a subrutin sokszor do loop ban fut 4MHz-en, tehát másodpercenként nagyon sokszor.
Ezek közül okozhatja valamelyik?
A szubrutinba be/kilépés ~6-8 órajel. Ha ez INT alapon megy - 18-25 órajelet jelent. és ekkor semmit nem tettél a rutinban még...
A LCD-re írás igaz a do-loop-ban van benne és nem az INTben?
http://www.tavir.hu - a gazda
Re: LCD kijelző probléma
Üdv, sikerült megoldanom, töröltem minden "cls" parancsot, így már nem csinálja.