|
www.elektronik.si Forum o elektrotehniki in računalništvu
|
Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Sob Feb 22, 2014 2:54 pm Naslov sporočila: Deformirana slika na GLCD |
|
|
Lep pozdrav!
Imam naslednjo težavo.
Program za menu je napisan tako, da imam več različnih ekranov.
Ko naredim prvi in drugi krog, je slika na ekranu OK.
Po 2. krogu,skozi menu, pa se slika deformira - nakako, kakor da bi se na polovici zamaknila, črte grejo postrani....
Ugotovil sem, da če odstranim vse okrasne črte, da je s slikami vse OK (samo čisti tekst), ko pa vrnem okrasne črte (linije) nazaj, pa zopet ista pesem.
Sem poizkusil z dvema različnima grafičnima zaslonoma, pa je ista pesem.
Program sem napisal v BascomAVR, za ukontroler Atmega32.
Hvala za pomoč.
|
|
Nazaj na vrh |
|
|
Pobesneli Član
Pridružen-a: Sre 02 Jan 2008 1:24 Prispevkov: 1070 Aktiv.: 5.39 Kraj: Ajdovščina
|
Objavljeno: Sob Feb 22, 2014 3:38 pm Naslov sporočila: |
|
|
Ne vem kako imaš tiste črte narisane, meni je delalo problem ko je taka črta ali slika šla "ven" iz ekrana. Potem jo je preložilo eno vrstico nižje in slika se je zamaknila.
|
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Sob Feb 22, 2014 3:48 pm Naslov sporočila: |
|
|
Drži, tak problem poznam iz preteklosti. Sedaj to ni krivo.
V tem času sem prišel do novega spoznanja:
Iz programa sem vrgel vse sub rutine, tako da program sam scrola skozi menije.
Sedaj teh težav nimam več.
Vendar sub rutine v resničnem programu potrebujem...
Hmm.
Ima mogoče kdo kakšno idejo?
|
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Sob Feb 22, 2014 4:27 pm Naslov sporočila: |
|
|
Kot kaže je težava v definiciji $HWSTACK.
Vrednost 32 sem povečal na 80.
Prej se je slika ekrana deformirala na vsakem 3. krogu scrolanja, sedaj pa se na vsakem 8. krogu.
Katera je maksimalna vrednost $HWSTACK, ki jo lahko vpišem v Bascom AVR?
|
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5334 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Sob Feb 22, 2014 4:42 pm Naslov sporočila: |
|
|
Če ti zadeva "uide" v večanje stacka, tega ne rešujemo s povečanjem le-tega, ampak s tem, da najdemo, kje v programu smo naredili napako ...
Kratek opis je tale: ko skočimo v neko subrutino, se vse "aktualne" spremenljivke naložijo v stack. Ko končamo z izvajanjem subrutine, se z ukazom "Return" vrnemo v glavno zanko, kjer se vrednosti iz stacka pokopirajo nazaj in "spraznijo" stack. Če tega ne delamo pravilno (skok iz subrutine z Goto, interruptom ...), pride do omenjenega problema.
Najbolj pogosta je ta, da se iz kakšne subrutine ne vračamo z Return, ampak s kakšnim Goto skokom.
Lp, g
_________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Sob Feb 22, 2014 5:44 pm Naslov sporočila: |
|
|
Hvala.
Sedaj pa v podrobno analizo vseh subrutin.
|
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Sob Feb 22, 2014 6:06 pm Naslov sporočila: |
|
|
Podrobna analiza je res pokazala izhod iz sub rutina z goto sukazom.
Kar nekaj takih je bilo v programu.
Iskrena hvala za tak ozelo koristen nasvet.
|
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5334 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Sob Feb 22, 2014 7:52 pm Naslov sporočila: |
|
|
Hehe, been there - done that ...
Prečitaj Vilkotov članek o tem v skripti, ki smo jo spisali pred leti ... http://www.ecat.si/2011/05/906/
LP, g
_________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Ned Mar 02, 2014 4:03 pm Naslov sporočila: |
|
|
Lepo pozdravljeni,
imam zopet podobno težavo, mislim, da nima istega vzroka kot tista za katero sem prosil pomoč pred tednom dni.
Pripel sem sliko, kaj se dogaja na GLCD-ju, ne da bi karkoli pritiskal ali spreminjal.
Prva slika prikazuje, ko je vse v redu, druga slika prikazuje prvo napako ,tretja slika prikazuje obe napaki.
Ura spodaj pokaže koliko časa je minilo, da sta se ti dve napaki pojavili.
Tudi po 24 urah sem do sedaj opazil samo ti dve napaki.
Kaj je lahko vzrok za to?
Mogoče malo pojasnil:
- koda je napisana v BascomAVR
- temperaturo merim s temperaturnimi senzorji DS1820
- uro sem naredil z uporabo TIMER1 v BASCOMAVR-ju.
Opis: |
|
Velikost datoteke: |
82.47 KB |
Pogledana: |
0 krat |
|
Opis: |
|
Velikost datoteke: |
43.65 KB |
Pogledana: |
1 krat |
|
Opis: |
|
Velikost datoteke: |
43.76 KB |
Pogledana: |
0 krat |
|
|
|
Nazaj na vrh |
|
|
lojzek Član
Pridružen-a: Pet 25 Jan 2008 8:00 Prispevkov: 3353 Aktiv.: 16.96
|
Objavljeno: Ned Mar 02, 2014 7:25 pm Naslov sporočila: |
|
|
Zgleda kot napačno spisana koda, napaka nekje pri deklaraciji ali shranjevanju spremenljivk. Lahko tudi nekaj z dolžino stringov,...
V glavnem, zdi se mi, da neka novejša spremenljivka povozi del že tam v spominu shranjene...
Še enkrat, vsaj v C-ju moraš biti natančen pri dolžini stringov..
|
|
Nazaj na vrh |
|
|
mucek Član
Pridružen-a: Tor 01 Avg 2006 10:47 Prispevkov: 5334 Aktiv.: 24.73 Kraj: Domzale
|
Objavljeno: Ned Mar 02, 2014 7:46 pm Naslov sporočila: |
|
|
Jap, to je to - nekje pišeš čez dimenzije zaslona ...
Lp, g
_________________ ...lahko pa se tudi motim ... |
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Ned Mar 02, 2014 11:30 pm Naslov sporočila: |
|
|
hmm, čeprav prvih 40 minut dela tako kot mora?
Se pravi, prvih 40 minut zanka do loop deluje tako kot mora potem pa ne več....
Sem pomisli na to, ampak, program vseskozi enako dela, ne gre nikoli kam drugam, v kakšno drugo podzanko ,da bi imel tam kaj drugačnega...
Ali pač nisem razumel točno odgovora?
Hvala
|
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Pon Mar 03, 2014 8:53 am Naslov sporočila: |
|
|
Dobro jutro,
ali bi morda še kdo imel kakšne idejo, kaj bi lahko bilo narobe?
V prvi verziji tega programa, ko nisem imel še ure in prikazovanja dnevov, te težave nisem imel...
Ali bi mogoče lahko bila težava v Timer-ju?
Za uro namreč uporabljam Timer1, če prav vem, tudi DS1820 za branje temperature uporablja timer.
Ali je možno da se med branjem temperature, aktivira Timer1 in potem senzor temeprature ne prebere pravilno? To bi lahko bil odgovor na drugo težavo, morda,
ne vem pa, zakaj ne izpiše pravilno dan v tednu.
|
|
Nazaj na vrh |
|
|
protoncek Član
Pridružen-a: Sre 31 Jan 2007 9:41 Prispevkov: 9573 Aktiv.: 45.67 Kraj: Mengeš
|
Objavljeno: Pon Mar 03, 2014 11:11 am Naslov sporočila: |
|
|
Bascom zna bit siten pri izpisu decimalnih števil,kjer mu omejiš število decimalk za izpis....
primer: ti mu lepo definiraš da do 9.9 prikaže " 9.9oC", nad tem pa "10.0oC", pa se kljub temu včasih zgodi, da prikaže " 10.0o" ter zadnji C nekako na pol ali povsem drugje, če je ta izpis že tako na robu. In to kljub temu, da uporabiš ukaz "fusing". Očitno ta fusing ni ravno dodelan. Namreč, ko vpišeš v spremenljivko tipa single 10, je pravi rezultat lahko 9.999999999...
Jaz sem to naredil tako, da ločim cela števila in decimalke, potem pa izpišem ločeno, torej:
celo število, ".", decimalko, "oC".
tako gre vedno.
V tvojem primeru po moje od časa do časa napačno prebere temperaturo in tako čudno izpiše. Ali prihaja do motenj, je linija predolga, lahko ravno med branjem dallasa nastopi prekinitev...
Ali reši izpis ali pa beri temperaturo po večkrat in primerjaj, če je vedno enaka (recimo v burstu jo prebereš 3x zaporedoma, preveriš če so vsa tri merjenja enaka in šele nato izpišeš). Seveda to zna biti zoprno pri hitrih spremembah temperature...
|
|
Nazaj na vrh |
|
|
veter Član
Pridružen-a: Tor 06 Jan 2004 9:25 Prispevkov: 132 Aktiv.: 0.59 Kraj: Bled
|
Objavljeno: Pon Mar 03, 2014 11:26 am Naslov sporočila: |
|
|
Hvala za izčrpen odgovor.
Temperatura:
Že sedaj ločim izpis na celi del in decimalni del, branje dallasovega temp. senzorja sem izvedel s pomočjo programa na forumu Bascom.
Linija ni predolga, ker vse skupaj razvijam na Mega Pin plošči, so senzorji kar tam priključeni ,neposredno na ploščo.
Sam vedno bolj sumim da je kriva prekinitev zaradi ure, medtem ko bere Dallasa.
Kaj lahko naredim v tem primeru?
Nobenega izhodišča pa nimam, kaj bi lahko bilo narobe pri izpisu dneva v tednu...
Hvala za vsa mnenja in nasvete.
|
|
Nazaj na vrh |
|
|
|
|
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: 70 dni
Powered by phpBB © 2001, 2005 phpBB Group
|