Poglej prejšnjo temo :: Poglej naslednjo temo |
Avtor |
Sporočilo |
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Pet Okt 05, 2012 11:19 am Naslov sporočila: |
|
|
Tudi s tem sem se že igral.
Dal sem zakasnitev :
- takoj po pritisku na tipko, preden nariše sliko,
- po izrisu slike.
Ne deluje!!!
Za skoke iz menija v podmenije uporabljam ukaz Debounce. Pred tem sem IF stavek. A je mogoče tu kakšen kiks?
Lp |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Pet Okt 05, 2012 12:22 pm Naslov sporočila: |
|
|
Poskusi ukaz debounce zamenjati z ukazom if-----. Tudi sam sem že imel težave s tem ukazom, zato se ga malce izogibam. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Pet Okt 05, 2012 1:15 pm Naslov sporočila: |
|
|
Odkril sem napako, ne vem pa še, kako jo bom odpravil. Mi ni jasno, zakaj do tega pride.
Če remam prekinitveno rutino, katera mi generira sekunde in pripadajoče nastavitve timerja mi zadeva deluje 100% brezhibno.
Nastavitve timerja:
Rem ********** Nastavitev prekinitev 1sek **********
Const Timer1reload = 31250
Config Timer1 = Timer , Prescale = 256
Load Timer1 , Timer1reload
On Ovf1 Prekinitev
Enable Timer1
Start Timer1
Enable Interrupts
Prekinitveni program:
Rem ***** Prekinitveni program 1 sek *****
Prekinitev:
Load Timer1 , Timer1reload
Incr Sek_sani
Incr Sek_boris
Return |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Pet Okt 05, 2012 1:21 pm Naslov sporočila: |
|
|
Predvidevam, da pride do anomalije na ekranu takrat, ko istočasno pride do nalaganja slike z ukazom "Showpic 0 , 0 , meni3" in programske prekinitve.
Sigurno ima kdo izkušnjo s prikazovanjem slik in istočasno uporabo prekinitve v programu.
Hvala!
Lp, Boris |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Pet Okt 05, 2012 2:23 pm Naslov sporočila: |
|
|
To bo to. Preverjeno. Ce pred ukazom SHOWPIC uporabim ukaz DISABLE INTERRUPTS in takoj za ukazom SHOWPIC ukaz ENABLE INTERRUPTS zadeva deluje.
Če je tako, potem grafični display ni uporaben, ker v vsakem programu uporabljamo prekinitve, in po moje tudi ni smiselno, da prekinitve v programu onemogočamo oziroma omogočamo!
Prosim za komentar kako rešujete to vi!
Hvala!
Lp, Boris |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Pet Okt 05, 2012 6:54 pm Naslov sporočila: |
|
|
Kaj pa če imaš premajhne vrednosti swstack, Hwstack in framesize? Povečaj to in poskusi. Lahko občasno pride do overflowa in se dogajajo čudesa... _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Sob Okt 06, 2012 7:40 am Naslov sporočila: |
|
|
senna je napisal/a: |
Če je tako, potem grafični display ni uporaben, ker v vsakem programu uporabljamo prekinitve, in po moje tudi ni smiselno, da prekinitve v programu onemogočamo oziroma omogočamo!
Prosim za komentar kako rešujete to vi!
Hvala!
Lp, Boris |
Boris,
do sedaj še nisem imel takšne težave, kot jo opisuješ, mogoče jo rešiš tako, kot je napisal Protonček.
Bi pa dodal še nekaj: tudi temperaturni senzor DS1820 ne prenese prekinitev medtem, ko prenaša podatke v mikrokontroler, pa ne moremo reči, da je neuporaben. Potrebno je program prilagoditi tako, da prekinitve delujejo, hkrati pa tudi DS1820. Verjetno je podobno pri tebi z GLCD-jem.
Lp
Jure |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Sob Okt 06, 2012 10:28 am Naslov sporočila: |
|
|
Jure, zanimivo da meni termostat z DS-om in prekinitvami deluje. Mogoče pa je narobe kaj s slikami. V katerem programu rišete slike? Jaz jih kar v slikarju.
Hvala! |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Sob Okt 06, 2012 11:25 am Naslov sporočila: |
|
|
Predlagam da si narediš spremenljivko, katero v prekinitvi postaviš na 1. Potem rišeš nove stvari na lcd samo v primeru če je ta spremenvljivka enaka ena, s tem da jo takoj ob začetku risanja postaviš nazaj na nič. Tako bo program risal na lcd samo takoj po končani prekinitvi in bo končal do naslednje, seveda če interval prekinitve ni ekstremno kratek. Če spremenljvika še ni ena, ko hočes risati pač narediš zanko, ki čaka dokler ni pogoj izpolnjen. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Ned Okt 07, 2012 9:52 am Naslov sporočila: |
|
|
Protoncek, zastopim. Bom probal.
Lp, Boris |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Ned Okt 07, 2012 9:58 am Naslov sporočila: |
|
|
Poskusi tudi s povečanjem swstack itd... Namreč, odvisno od tega, koliko ukazov sub imaš se lahko prekriva. Tudi rutine za risanje lahko same uporabljajo stack. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Ned Okt 07, 2012 11:14 am Naslov sporočila: |
|
|
S povečanjem $swstack ni šlo. Problem sem rešil tako, da sem pred izrisom slike onemogočil prekinitev, ki očitno zmoti GLCD v času izrisa. Takoj po izrisu slike sem ponovno omogočim prekinitev. Prekinitev pa sem izvedel kot je Jure sam rekel, treba jo je pač prilagoditi.
Vprašanje, ki sicer ne vpliva na moj trenutni projekt a vseeno:
- na moj GLCD lahko natisnem le fonte 5x5 in 8x8 kljub temu, da imam tudi druge datoteke (6x10, 8x14, 10x16,...).
- ali obstaja program za kreiranje lastnih fontov?
Lp, Boris |
|
Nazaj na vrh |
|
|
protoncek Profesionalec
Pridružen/-a: Sob Maj 2007 9:25 Prispevkov: 303 Kraj: Mengeš
|
Objavljeno: Ned Okt 07, 2012 2:02 pm Naslov sporočila: |
|
|
hm...pišeš lahko s katerimkoli fontom, le pred pisanjem moraš navesti vir (npr. Setfont font10x16) ter ta font seveda vključiti v program (na koncu daš $include "Font imefonta.font"). Program za kreiranje fontov je že v Bascomu. Najprej odpri Orodja/Menežer vtičnikov in vključi fonteditor. Restartaj Bascom in v orodja/vrtičniki boš imel fonteditor. Z njim lahko spreminjaš ali na novo kreiraš fonte. _________________ http://www.protoncek.com |
|
Nazaj na vrh |
|
|
Jure Urednik
Pridružen/-a: Pon Jan 2004 12:51 Prispevkov: 2132 Kraj: Ljubljana
|
Objavljeno: Pon Okt 08, 2012 8:47 am Naslov sporočila: |
|
|
senna je napisal/a: | Jure, zanimivo da meni termostat z DS-om in prekinitvami deluje. Mogoče pa je narobe kaj s slikami. V katerem programu rišete slike? Jaz jih kar v slikarju.
Hvala! |
DS ne pošlje pravilne temperature, če postopek pošiljanja podatkov prekineš s prekinitvijo. Takšne so moje izkušnje.
Slike narišem v slikarju, potem pa jih z BGF editorjem pretvorim v BGF format.
Ali si morda pri pretvorbi slik v BGF uporabil napačno nastavitev? SED mora biti vklopljen, če se prav spomnim.
Lp
Jure |
|
Nazaj na vrh |
|
|
senna Mojster
Pridružen/-a: Čet Jun 2011 21:14 Prispevkov: 23
|
Objavljeno: Pon Okt 08, 2012 9:50 am Naslov sporočila: |
|
|
Pri pisanju na GLCD seveda uporabim ukaz "Setfont", ampak mi na ta način uspe prikazati le fonte 5x5 in 8x8 (fontov 10x16, 5x12, 8x14,... nikakor ne morem prikazati). A je to problem, ker so višji od 8 pik? Probal sem se poigrati po navodilih protončka in v BASCOM-u kreirati črke. Datotako test.font sem ustvaril in jo vključil v programu a jo pravtako ne morem prikazati na GLCD-ju. Sicer pri pretvorbi ne javi nobene napake, a ekran je prazen!!!??
Jure, naredil sem vse kot si napisal, je pa zanimivo, da meni pri merjenju temperature ne pride do napak (vsaj opazil nisem).
Hvala!
Boris |
|
Nazaj na vrh |
|
|
|