Merenje periode pomocu pic basica
Moderators: pedja089, stojke369, [eDo], trax
Merenje periode pomocu pic basica
Pozdrav svima.Interesuje me kako da napisem program pomocu kog bih mogao da merim trajanje periode.Ako moze neko kratko objasnjenje ili neki primer.Vidjao sam u drugim jezicima ali nesnalazim se jer od jezika poznajem nesto malo picbasic
Re: Merenje periode pomocu pic basica
Na uzlaznoj ivici pokrenes tajmer, na silaznoj iskljucis. Ili obrnuto. NEki picevi imaju i Timer gate control ili tako nesto. Tako da sve zavisi od pica koji koristis. Isto dosa zavisi od periode, koliko traje. Nije isto meriti periodu od 1nS i od 1 godine.
Re: Merenje periode pomocu pic basica
e sto volim kad ljudi misle da ja mnogo znam a ja .... Pedja hvala ti na odgovoru,zamolio bih te samo ako ima neki primer ili adresa gde ima.Znam nasta mislis kako to uraditi ali neverujem da ja to mogu mada pokusacu.
Re: Merenje periode pomocu pic basica
Nemam link. To je ovako iz glave. Mozes to uraditi, nije puno tesko.
Bitno je vreme trajanja periode i izbor pic-a i kako ga povezati.
Zato aj od pocetka da krenemo, sta meris, jos bolje ako mozes da kazes zasto meris. Koji pic hoces ili koji picevi dolaze u izbor?
Bitno je vreme trajanja periode i izbor pic-a i kako ga povezati.
Zato aj od pocetka da krenemo, sta meris, jos bolje ako mozes da kazes zasto meris. Koji pic hoces ili koji picevi dolaze u izbor?
Re: Merenje periode pomocu pic basica
hteo sam neko merenje PWM signala pa sad trajanje log1 i trajanje log0 a pic neki kao 16f628 ili 16f88,svejedno.Probao sam nesto bez upotrebe tajmera ali nije islo.Evo sta ovako nabrzinu:
trisa=%00000001
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100
broj var word
milan var word
pocetak:
while porta.0=0
milan=milan+1
wend
broj=milan
lcdout $FE, $80, "BROJ=", dec4 broj
goto pocetak:
end
Ovo ce da broji u mikrosekundama koje cu lako da izdelim da mi na displeju sve lepo pise ali meri samo prvu log1 a svaku slidecu sabira sa prvom,neznam kako kad izmeri i pokaze na displeju da posle vrati "milan" na nulu pa da meri ponovo sledecu log1
trisa=%00000001
DEFINE LCD_BITS 4
DEFINE LCD_DREG PORTB
DEFINE LCD_DBIT 4
DEFINE LCD_RSREG PORTB
DEFINE LCD_RSBIT 2
DEFINE LCD_EREG PORTB
DEFINE LCD_EBIT 0
DEFINE LCD_RWREG PORTB
DEFINE LCD_RWBIT 3
DEFINE LCD_LINES 2
pause 100
broj var word
milan var word
pocetak:
while porta.0=0
milan=milan+1
wend
broj=milan
lcdout $FE, $80, "BROJ=", dec4 broj
goto pocetak:
end
Ovo ce da broji u mikrosekundama koje cu lako da izdelim da mi na displeju sve lepo pise ali meri samo prvu log1 a svaku slidecu sabira sa prvom,neznam kako kad izmeri i pokaze na displeju da posle vrati "milan" na nulu pa da meri ponovo sledecu log1
Re: Merenje periode pomocu pic basica
Mozda je glupo ovako sto sam probao ali mislim da bih imao rezoluciju jednu uS i sad na displeju bih video koliko je uS pin porta.0 bio nna log1 sto bih lako sveo da rezultat bude prikazan i u mS i sek. ali neznam kako obrisati trajanje prve log1 pa prikazati drugu i td...
Re: Merenje periode pomocu pic basica
Ima tu propusta...
Prvo pre pocetka mrrenja moras cekati silaznu ivicu signala
Sto ce reci
Moras dodati i ova dva podprograma koji ce raditi nesto kada nema signala. U ovom slucaju kad ne koristis tajmere vreme izvrsavanja nije jedna us pri taktu 4mhz. To je tacno za asemblerske instrukcije. A jedna instrukcija u visem jeziku moze da ima nekoliko stotina asm instrukcija. Odlican primer za to ti je lcdout.
Prvo pre pocetka mrrenja moras cekati silaznu ivicu signala
Sto ce reci
Code: Select all
Pocetak
milan=0
While porta.0=1
Milan=milan+1
If milan>65000 then goto nemaPrvepoluperiode
Wend
Milan=0
While pota.0=0
Milan=milan+1
If milan>65000 then goto predugapoluperioda
Wend
Obde u promenljivoj milan imas rezultat sa kojim radis sta hoces
Re: Merenje periode pomocu pic basica
Na lcdout stavi dec5 jer je toliko cifara potrebno da mozes prikazati 65000.