www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Risanje grafa na LCD

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 16.32
Kraj: Črnuče

PrispevekObjavljeno: Pet Apr 22, 2011 9:35 am    Naslov sporočila:  Risanje grafa na LCD Odgovori s citatom

Iščem idejo kako na 2 vrstični LCD narisati v eno vrstico graf, ki bi bil odvisen od vrednosti ene 1 bajtne spremenljivke. Spremenljivka je v bistvu vrednost za glasnost digitalnega potenciometra, graf pa naj bi ponazarjal glasnost.

Graf naj bi se večal, oziroma manjšal glede na vrtenje potenciometra.
Izdelal sem lastne znake, s katerimi lahko zapolnim poljubno široko polje prostora za zank na LCD-ju, zatika se mi ideji kako "izračunati" funkcijo, ki mi bo omogočala, da bo dolžina grafa sledila nastavitvi za glasnost.

Graf naj bi se risal nekako takole:
Koda:

Glasnost:
1
Prikaz:
|

10
||||||||||

25
|||||||||||||||||||||||||


Navpične črtice se grupirajo po pet za eno pozicijo znaka na LCD displeju.
Tako
Koda:

|||||     zaseda 1 karakter
||||||   zaseda 2 karakterja , ||||| prvi karakter, | drugi karakter

Imam namen porabiti kompletno vrstico LCD displeja, ki ima 16 znakov. (Oziroma rahlo manj, da se izide lepo na okroglo)
Programiram sicer v basicu trenutno, samo iščem samo idejo kako se zadeve lotiti.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
jvolk
Član
Član



Pridružen-a: Ned 05 Mar 2006 1:14
Prispevkov: 737
Aktiv.: 3.01
Kraj: okolica Divače

PrispevekObjavljeno: Pet Apr 22, 2011 9:46 am    Naslov sporočila:   Odgovori s citatom

Za C imam eno tako knjižnico.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
gumby
Član
Član



Pridružen-a: Sob 28 Apr 2007 12:32
Prispevkov: 4066
Aktiv.: 17.60

PrispevekObjavljeno: Pet Apr 22, 2011 10:00 am    Naslov sporočila:   Odgovori s citatom

En "stolpec" pri 16 znakih znese 3.2 bita, torej boš moral malo več računat za točen prikaz. Najbolj enostavno bo, da spremenljivko spraviš v 16 bitov, nato jo množiš z 5 in deliš z 16. Ta cifra potem pove število stolpcev (0-79).
Za prikaz boš moral definirat 5 znakov, enega za vsako širino stolpca. Izračunaš še, koliko polnih znakov je za izpis (vrednost deliš z 5) in kateri pride na konec (modul z 5). Nato pa znake samo namečeš na display...
Wink

_________________
Tule nisem več aktiven.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Pošlji E-sporočilo
matjazkariz
Član
Član



Pridružen-a: Sre 03 Nov 2004 18:09
Prispevkov: 1026
Aktiv.: 4.15

PrispevekObjavljeno: Pet Apr 22, 2011 4:57 pm    Naslov sporočila:   Odgovori s citatom

Če imaš kak CD od KEIL, ki ga dobiš zraven kakšne njihove demo plošče, imaš kodo, ki dela točno to na (vsaj) enem od primerov za MCB2300 board. Žal ne vem kateri example je to, sigurno ga pa dobiš med primeri za ta board.
_________________
LP, Matjaž
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 16.32
Kraj: Črnuče

PrispevekObjavljeno: Pet Apr 22, 2011 6:10 pm    Naslov sporočila:   Odgovori s citatom

Gumbyjeva metoda za izračunavanje znakov vsekakor deluje. Sem v bistvu imel že nekaj sestavljeno na malček drugačen način...

Ne vem kaj potem. Razmišljal sem, da naredim string, in ga za število polnih znakov zapolnim s polnimi znaki, nato dodam znak ostanka, in preostal prostor zapolnim z praznimi znaki.

Tako bi dobil string, ki je 16 znakov dolg in ga prikažem.

Ali bi bilo bolje LCD prikazovalniku pošiljat kar posamezne znake?

Bo treba kar poizkusit.

Se pa drugače s picem ukvarjam..

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
SimonS
Član
Član



Pridružen-a: Čet 01 Jul 2004 11:18
Prispevkov: 4882
Aktiv.: 19.76
Kraj: Kobarid

PrispevekObjavljeno: Pet Apr 22, 2011 7:00 pm    Naslov sporočila:   Odgovori s citatom

Cypress ima že napisano knjižnico, ki popolnoma ustreza tvojim željam.
_________________
Lep dan
Simon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
aly
Član
Član



Pridružen-a: Tor 28 Sep 2004 14:51
Prispevkov: 9407
Aktiv.: 38.07
Kraj: Kranj - struževo

PrispevekObjavljeno: Pet Apr 22, 2011 7:10 pm    Naslov sporočila:   Odgovori s citatom

Highlag je napisal/a:
Tako bi dobil string, ki je 16 znakov dolg in ga prikažem.
Ali bi bilo bolje LCD prikazovalniku pošiljat kar posamezne znake?

Vseeno. Itako moraš med pošiljanjem posameznega znaka počakat, da LCD sprosti BUSY signal.

_________________
I'm going to stand outside, so if anyone asks, I'm outstanding Smile
Nazaj na vrh
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran MSN Messenger - naslov
Highlag
Član
Član



Pridružen-a: Pet 23 Jan 2004 20:42
Prispevkov: 4034
Aktiv.: 16.32
Kraj: Črnuče

PrispevekObjavljeno: Sob Apr 23, 2011 1:23 pm    Naslov sporočila:   Odgovori s citatom

No sem spesnil tole kodo, ki očitno deluje.

Koda:

Sub Procedure Graf
dim Preracun as word
dim Polni_znaki as byte
dim Ostanek as byte
dim stevec as byte
dim Os as byte
dim glasnost_old as byte

If glasnost_old <> glasnost then     ' obnova izpisa, če je potrebno
Os=0                                  ' če je ostanek, je potrebno izbris povečati

Preracun = (glasnost * 5 ) /16       ' preracun števila navpičnic grafa
Polni_znaki = Preracun / 5           ' število polnih znakov
Ostanek =  Preracun mod 5            ' nepopolni znaki

for stevec=0 to Polni_znaki          ' Izpis popolnih znakov
    LCD_CHR (2, (stevec+1),4)        ' 0=I, 1=II, 2=III, 3=IIII, 4=IIIII
next stevec

if ostanek > 0 then                  ' Izpis ostanka
    LCD_CHR (2, (Polni_znaki+1), Ostanek)
    Os=1
end if

for stevec=(Polni_znaki+1+Os) to 16  ' brisanje praznih znakov na LCD
    LCD_CHR (2, stevec, 160)
next stevec
glasnost_old=glasnost
end if

end sub

Program zahteva byte vrednost Glasnost, s katero nato zapolni 2 vrstico LCD displeja.

_________________
If at first you don't succeed, destroy all evidence that you tried.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Elektronika Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 233 dni


Powered by phpBB © 2001, 2005 phpBB Group