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 

Deformirana slika na GLCD
Pojdi na stran 1, 2, 3  Naslednja
 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Sob Feb 22, 2014 2:54 pm    Naslov sporočila:  Deformirana slika na GLCD Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pobesneli
Član
Član



Pridružen-a: Sre 02 Jan 2008 1:24
Prispevkov: 1070
Aktiv.: 5.39
Kraj: Ajdovščina

PrispevekObjavljeno: Sob Feb 22, 2014 3:38 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Sob Feb 22, 2014 3:48 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Sob Feb 22, 2014 4:27 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5334
Aktiv.: 24.73
Kraj: Domzale

PrispevekObjavljeno: Sob Feb 22, 2014 4:42 pm    Naslov sporočila:   Odgovori s citatom

Č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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Sob Feb 22, 2014 5:44 pm    Naslov sporočila:   Odgovori s citatom

Hvala.

Sedaj pa v podrobno analizo vseh subrutin.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Sob Feb 22, 2014 6:06 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5334
Aktiv.: 24.73
Kraj: Domzale

PrispevekObjavljeno: Sob Feb 22, 2014 7:52 pm    Naslov sporočila:   Odgovori s citatom

Hehe, been there - done that ... Brick wall Brick wall Brick wall Brick wall
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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Ned Mar 02, 2014 4:03 pm    Naslov sporočila:   Odgovori s citatom

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.



DSC_0456 (648 x 486).jpg
 Opis:
 Velikost datoteke:  82.47 KB
 Pogledana:  0 krat

DSC_0456 (648 x 486).jpg



DSC_0457 (648 x 486).jpg
 Opis:
 Velikost datoteke:  43.65 KB
 Pogledana:  1 krat

DSC_0457 (648 x 486).jpg



DSC_0458 (648 x 486).jpg
 Opis:
 Velikost datoteke:  43.76 KB
 Pogledana:  0 krat

DSC_0458 (648 x 486).jpg


Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
lojzek
Član
Član



Pridružen-a: Pet 25 Jan 2008 8:00
Prispevkov: 3353
Aktiv.: 16.96

PrispevekObjavljeno: Ned Mar 02, 2014 7:25 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
mucek
Član
Član



Pridružen-a: Tor 01 Avg 2006 10:47
Prispevkov: 5334
Aktiv.: 24.73
Kraj: Domzale

PrispevekObjavljeno: Ned Mar 02, 2014 7:46 pm    Naslov sporočila:   Odgovori s citatom

Jap, to je to - nekje pišeš čez dimenzije zaslona ...

Lp, g

_________________
...lahko pa se tudi motim ...
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Ned Mar 02, 2014 11:30 pm    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Pon Mar 03, 2014 8:53 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
protoncek
Član
Član



Pridružen-a: Sre 31 Jan 2007 9:41
Prispevkov: 9573
Aktiv.: 45.67
Kraj: Mengeš

PrispevekObjavljeno: Pon Mar 03, 2014 11:11 am    Naslov sporočila:   Odgovori s citatom

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
Skrit Poglej uporabnikov profil Pošlji zasebno sporočilo Obišči avtorjevo spletno stran
veter
Član
Član



Pridružen-a: Tor 06 Jan 2004 9:25
Prispevkov: 132
Aktiv.: 0.59
Kraj: Bled

PrispevekObjavljeno: Pon Mar 03, 2014 11:26 am    Naslov sporočila:   Odgovori s citatom

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
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Osnove programiranja AVR-jev Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Pojdi na stran 1, 2, 3  Naslednja
Stran 1 od 3

 
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: 70 dni


Powered by phpBB © 2001, 2005 phpBB Group