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 Prejšnja  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
forest70
Član
Član



Pridružen-a: Ned 20 Jul 2008 1:00
Prispevkov: 588
Aktiv.: 2.86
Kraj: Koper

PrispevekObjavljeno: Pon Mar 03, 2014 1:17 pm    Naslov sporočila:   Odgovori s citatom

veter je napisal/a:
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.


Princip delovanja dalasa je:
Pošlješ mu ukaz za čitanje senzorjev, dalas dokler ne opravi meritve drži 1wire linijo nizko
v glavni zanki kontroliraš 1wire vodilo, da postane visoko in prečitaš retultat iz dalasa
Vse tiste rutine v basic avr kakor tiste codevision avr so zanič saj uporabljajo delay na mesto, da bi uporabili zgoraj napisano. Res pa je, da se ne da drugače, če jih imaš parazitsko napajane ...
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.: 42.79
Kraj: Mengeš

PrispevekObjavljeno: Pon Mar 03, 2014 1:59 pm    Naslov sporočila:   Odgovori s citatom

No, jaz te stvari ne rešujem s pavzo, niti z branjem vodila, ampak preprosto tako, da vsakič najprej preberem DS, nato takoj spet pošljem ukaz za konverzijo. In ker berem recimo na 1s ali celo na 2 sek, ima DS ogromno časa, da naredi svoje. Edina finta pri tem sistemu je da je treba ob zagonu na začetku programa nekje poslati ukaz za konverzijo, potem pa izvesti začetne zadeve ( izpis LCD...), kar mora trajati najmanj pol sekunde. V skrajnem primeru je prvi rezultat temperature 85 stopinj. Ja, pa prikaz temperature zaostaja za "pravo" za tisto sekundo ali dve. Pa kaj...

glede branja: kaj pa če bi branje dallasa izvajal v prekinitvi? ali pa takrat, ko bereš onemogoči prekinitve, če niso kritične za delovanje kakšne ure... (disable interrupts, prebereš DS ter spet enable interrupts).
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: 138
Aktiv.: 0.58
Kraj: Bled

PrispevekObjavljeno: Pon Mar 03, 2014 2:04 pm    Naslov sporočila:   Odgovori s citatom

Hmm, tole postaja komplicirano.

Si bom naredi len nov programček, ki bo samo meril čas, ter meril tri temeprature, tako kot v zgoraj opisanem primeru.
Bom videl, če se bo isto dogajalo.

Če bi prekinil timer med branjem Dallasa.
Bojim se da bo to vplivalo na točnost ure potem?
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: 138
Aktiv.: 0.58
Kraj: Bled

PrispevekObjavljeno: Pon Mar 03, 2014 8:22 pm    Naslov sporočila:   Odgovori s citatom

Lep pozdrav!

Obogaten sem za novo spoznanje.
V programu sem diseblal TIMER, tako da ura nič več ne dela, samo merjenje temperature.
Po dveh urah tesitranja je zaslon OK.

Torej je kriv TIMER1.

Sedaj pa težava, kako narediti merjenje temperature in uro? Žal nimam možnosti za zunanji čip za merjenje časa...
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.: 39.71
Kraj: Kranj - struževo

PrispevekObjavljeno: Pon Mar 03, 2014 8:33 pm    Naslov sporočila:   Odgovori s citatom

A mikro nima nobenega timerja več? samo enega?
_________________
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
veter
Član
Član



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

PrispevekObjavljeno: Pon Mar 03, 2014 8:43 pm    Naslov sporočila:   Odgovori s citatom

uC je Atmega32 in če sem prav prebral ima še TIMER0 in TIMER2, ki pa sta 8 bitna.
Ker nisem najbolj vešč v teh zadevah, bi prosi lza nasvet glede tega.
Sem izbral narobni TIMER morda?
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.: 42.79
Kraj: Mengeš

PrispevekObjavljeno: Pon Mar 03, 2014 8:50 pm    Naslov sporočila:   Odgovori s citatom

Ena izmed možnosti je da v prekinitveni rutini timerja (tam kjer šteješ uro) spotoma postaviš eno zastavico na ena, recimo "branjetemp=1". Potem v glavnem programu izvedeš branje dallasa samo pod pogojem ,da je ta "branjetemp" enaka ena , torej nekako v smislu:
Koda:

if branjetemp=1 then
   branjetemp=0
   izvedeš branje dallasa
end if


Tako ti bo dallas vedno bral takoj po izhodu iz prekinitve, ne pa kadarkoli, posledično ne bo prihajalo do napak, seveda če imaš timer nastavljen na tako dolg čas, da med dvema prekinitvama to lahko izvede.
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: 138
Aktiv.: 0.58
Kraj: Bled

PrispevekObjavljeno: Pon Mar 03, 2014 8:54 pm    Naslov sporočila:   Odgovori s citatom

Hvala za koristen namig.
Bom skušal narediti nekaj v tej smeri.
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: 5529
Aktiv.: 24.06
Kraj: Domzale

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

veter je napisal/a:
Torej je kriv TIMER1.


Kriv je programer Wink.
V interrupt rutine ne tlači same programske kode, ampak le postavljaj flage in nato kodo izvajaj v main rutini (da ti zadeva ne zastaja v interruptih in podira timingov).

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: 138
Aktiv.: 0.58
Kraj: Bled

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

Dober večer,

po dobrih dveh urah delovanja je zaslon še vedno tak kot mora biti, po zaslugi zgoraj omenjenega nasveta.

Iskrena hvala.

Upam, da bo tako tudi jutri zjutraj, bom pustil napravo delovati celo noč.
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
KlemenTegel
Član
Član



Pridružen-a: Sre 26 Mar 2014 14:25
Prispevkov: 28
Aktiv.: 0.20

PrispevekObjavljeno: Pet Apr 04, 2014 10:51 am    Naslov sporočila:   Odgovori s citatom

veter je napisal/a:

Sam vedno bolj sumim da je kriva prekinitev zaradi ure, medtem ko bere Dallasa.
Kaj lahko naredim v tem primeru?


Živ!

Kako šteješ sekunde(milisekunde ali kaj drugega) v prekinitveni rutini za timer?
Koliko časa porabiš v prekinitvi(koliko ukazov in katere izvajaš)?
Izpis ure izvajaš v isti rutini kot ostali izpis na GLCD?
Spremenljivke, ki se spreminjajo v prekinitvah, izpisujejo pa v glavni zanki jaz ponavadi "buferiram", torej ne izpisujem tiste, ki jo posodablja prekinitev, ampak drugo, ki se posodobi na začetku rutine za izpis na GLCD..

Preizkusi, sporoči kako je šlo Wink

L.P.

_________________
L.P.
Klemen Tegel
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
KlemenTegel
Član
Član



Pridružen-a: Sre 26 Mar 2014 14:25
Prispevkov: 28
Aktiv.: 0.20

PrispevekObjavljeno: Pet Apr 04, 2014 10:52 am    Naslov sporočila:   Odgovori s citatom

Ha, nisem pogledal druge strani teme Razz

L.P.

_________________
L.P.
Klemen Tegel
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: 138
Aktiv.: 0.58
Kraj: Bled

PrispevekObjavljeno: Sob Apr 12, 2014 7:34 pm    Naslov sporočila:   Odgovori s citatom

Pozdravljen!

V tem času sem prešel na Xmega, ki ima svojo uro, tako da mislim da bom to težavo s tem odpravil.
Vseeno veliko koristnih nasvetov, ki jih bom upošteval pri nadaljnem programiranju.

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



Pridružen-a: Sre 26 Mar 2014 14:25
Prispevkov: 28
Aktiv.: 0.20

PrispevekObjavljeno: Sob Apr 12, 2014 10:35 pm    Naslov sporočila:   Odgovori s citatom

Kateri programator pa uporabljaš za programiranje XMege?
_________________
L.P.
Klemen Tegel
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: 138
Aktiv.: 0.58
Kraj: Bled

PrispevekObjavljeno: Ned Apr 13, 2014 8:09 am    Naslov sporočila:   Odgovori s citatom

Tole sem nabavil preko E- plaže, ampak sedaj vidim da se za spodobno ceno dobi tudi v EU:
http://www.telwis.pl/avrmkii-programmer-p-115.html?osCsid=f24ae1e4be5d23fe80a44b9e063a229f
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 Prejšnja  1, 2, 3  Naslednja
Stran 2 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: 493 dni


Powered by phpBB © 2001, 2005 phpBB Group