LCD busy figyelo modban .....

HWSW Famulus hwsw at famulus.hu
Wed Jan 7 01:58:08 CET 2004


ATmega128/16Mhz
Az adott LCD 39 usec alatt emeszt egy karaktert.....
De,mar latom muszaly lesz idosztasossa atirni a frissitest,
mashol aggat az LCD...


KJ
  ----- Original Message ----- 
  From: Szoke Szilard-Zsigmond 
  To: Elektro Levlista 
  Sent: Tuesday, January 06, 2004 3:21 PM
  Subject: Re: LCD busy figyelo modban .....


  > 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