LCD kijelző probléma

Hogyha sikeresen O/PLED illetve hagyományos alfanumerikus - esetleg tán grafikus kijelzővel gyűlik meg a baja valakinek:)
Balazs
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. augusztus 21. vasárnap, 19:22

LCD kijelző probléma

Hozzászólás Szerző: Balazs »

Ü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
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelző probléma

Hozzászólás Szerző: Robert »

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)
http://www.tavir.hu - a gazda :)
Balazs
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. augusztus 21. vasárnap, 19:22

Re: LCD kijelző probléma

Hozzászólás Szerző: Balazs »

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)
Üdv nem vagyok szakértő, ki tudnád nekem fejteni, hogy ez hogyan tudnám megvalósítani?
Pluszinfó cls parancsnál csinálja a legsűrűbben hogy rossz sorba írja ki.
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelző probléma

Hozzászólás Szerző: Robert »

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).
http://www.tavir.hu - a gazda :)
Balazs
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. augusztus 21. vasárnap, 19:22

Re: LCD kijelző probléma

Hozzászólás Szerző: Balazs »

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.
Balazs
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. augusztus 21. vasárnap, 19:22

Re: LCD kijelző probléma

Hozzászólás Szerző: Balazs »

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?
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: LCD kijelző probléma

Hozzászólás Szerző: Robert »

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?
Az túl gyors, és a processzor nem bírja.
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 :)
Balazs
Újonc
Újonc
Hozzászólások: 5
Csatlakozott: 2016. augusztus 21. vasárnap, 19:22

Re: LCD kijelző probléma

Hozzászólás Szerző: Balazs »

Üdv, sikerült megoldanom, töröltem minden "cls" parancsot, így már nem csinálja.
Válasz küldése