LCD busy figyelo modban .....

Szoke Szilard-Zsigmond szilu at bartok.ro
Tue Jan 6 15:21:06 CET 2004


> Ugy talaltam, hogy egy rutinomban
> ami sokat( kb. 3 sornyit) ir a 4x20 LCD-re
> tul sok idot toltok es ez az ido hianyzik
> nekem mashol.
Ismeros problema. Mostanaban a robotom mikrokontrollerenek
programozasakor is utkoztem hasonloba. :)   0.28msec
periodusu rendszermegszakitas nem egyszeru dolog 0.92
MIPS-en (legalabbis nekem).

> Meglepetesemre a rutinom az eddigi
> 26,77 msec helyett 8,33 msec alatt
> kidobalja a szovegeket az LCD-re.
Nekem egy 2x16 karakteres (a megszokott szabvanyu, 8 bit
buszos) LCD-re kell irogatnom. A uC egy Philips 80c552
nagyjabol 11MHz-en. Az LCD egy kulso 374-es regiszteren log
(nem volt eleg laba a uC-nek, igy sokminden van a
bovitobuszon). Szoval az LCD-hez a bajtok kiirasa mar eleve
nem a leggyorsabb. A nyelv C, fordito Keil C51.
Vegul is nem erdekelt, hogy milyen keslelteteseket irnak elo
az adatlapok, a vezerlobitek kapcsolgatasa meg az adatbitek
is varakozasi ciklusok beiktatsa nelkul mentek ki a program
elso valtozataban (a meglevo library-t hasznaltam, valaki
elottem mar megirta), es akkor is megbizhatoan mukodott. Egy
sor kiirasa ~1.5-2msec-be telt, es csak ugy mellesleg irom,
hogy a sprintf egy 16 karakteres format stringre es
ket-harom unsigned int-re is nagyjabol 2msec alatt futott.
Szoval az a 3x20 karakter 8 msec korul nem is olyan rossz.
Es ugyaninnen kovetkeztetem, hogy az altalam hasznalt
implementacio is kozel van a sebesseglimithez. Bar, ez
lehet, hogy fugg a konkret LCD modultol.
Persze azota az egesz library kocerajt lecsereltem, megirtam
a magam idoosztasos valtozatait. Igy egy-egy lepes (1
karakter kiirasa az LCD-re) boven befer 0.25 msec-be, de az
egymast koveto lepesek csak 4.4 msec-enkent kovetik egymast.
Nem a leheto leggyorsabb a teljes szoveg kiirasa, de nekem
eleg (egyebkent sem volna olvashato a szoveg gyorsabb
valtoztatasa).

Talan megerne egy probalkozast ha megnezned, hogy a busy
flagre varakozo ciklus hanyszor fut le. Ha a uC-d lassu
(mint az enyem is), lehet, hogy csak egyszer, es meg azt is
meg lehetne sporolni, mert az LCD tartana az iramot a
programoddal. De ha gyors a uC... lehet, hogy nem szabadulsz
a varakozastol.

    Udv
        Szilard






More information about the Elektro mailing list