Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Merenje trajanja impulsa PIC-om

[es] :: Elektronika :: Mikrokontroleri :: Merenje trajanja impulsa PIC-om

[ Pregleda: 3661 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

conver
Milos Milutinovic
Paracin

Član broj: 226436
Poruke: 112
212.200.34.*



+1 Profil

icon Merenje trajanja impulsa PIC-om25.12.2009. u 13:11 - pre 173 meseci
Kako da izmerim trajanje elektricnog impulsa sa velikom preciznoscu ? kasnije bi taj vremenski podatak ispisao na LCD u pitanju su miliseukunde od 4ms do 17ms.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Merenje trajanja impulsa PIC-om25.12.2009. u 18:07 - pre 173 meseci
Da li misliš na veliku preciznost ili na veliku rezoluciju? Za veliku preciznost ti treba veoma precizan oscilator, a za veliku rezoluciju ti treba što veća frekvenca oscilatora. Daj više detalja.

Pozdrav.
Sinisha
 
Odgovor na temu

conver
Milos Milutinovic
Paracin

Član broj: 226436
Poruke: 112
95.180.10.*



+1 Profil

icon Re: Merenje trajanja impulsa PIC-om25.12.2009. u 19:40 - pre 173 meseci
uh... ovako, da probam da pojasnim... treba mi neki trik kako cu sto tacnije odrediti trajanje impulsa na elektricnoj dizni na automobilu! Trajanje tog impulsa se krece u raspone od 2ms na ler gasu do 17ms na punom gasu... Dakle hocu da znam koliki mi je taj impuls pri 1000o/min, 2000o/min itd. kako bi znao koja ce mi najvise odgovarati po karakteristikama druga elektricna dizna, za moj mali tuning motora na automobilu :)
Ispisao bi i te milisekunde i na lcd-u!
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Merenje trajanja impulsa PIC-om25.12.2009. u 20:24 - pre 173 meseci
A dobro, to nije kritično, 2 ms je ogromno vreme za kontroler koji radi na 4 MHz (za to vreme se izvrši 2000 instrukcija koje ne menjaju sadržaj PC registra). Vidim da radiš sa PIC familijom pa mogu da ti predložim 16F627 na 4 MHz, a princip je vrlo jednostavan i čak ti ne treba ni interapt (ionako bi samo zakomplikovao situaciju); dovoljno je da radiš tzv "polling" tj. da nadzireš stanje jednog pina. Konkretno, nadgledaš stanje pina na koji dovedeš impuls i kada naidje prednja ivica startuješ TMR1, zatim čekaš da se pojavi zadnja ivica i tada zaustavljaš TMR1, očitaš i pretvoriš u vreme. Obzirom da je TMR1 16-to bitni registar čak ne moraš da uvodiš u igru preskaler i sa 4 MHz dobiješ rezoluciju od 1 µs i maksimalno vreme do 65 535 µs što ti je više nego dovoljno, i ne treba ti nikakvo preračunavanje. Zbog testiranja pina imaćeš neku grešku koja malo varira, ali koji god prog. jezik da upotebiš (vidim da koristiš C) greška, ovako napamet, ne bi smela da bude veća od 6 µs (u zavisnosti od toga koliki je impuls i u kom momentu je naišla prednja ivica), ali tebi je ta greška više nego prihvatljiva.

Pozdrav.
Sinisha
 
Odgovor na temu

conver
Milos Milutinovic
Paracin

Član broj: 226436
Poruke: 112
212.200.34.*



+1 Profil

icon Re: Merenje trajanja impulsa PIC-om29.12.2009. u 15:19 - pre 173 meseci
Majem se ovde vec 5 dana,ali... Razumem ideju koju si predlozio , svaka cast, ali ne mogu da je ralizujem, nemam dovoljno znanja! Kako se po dovodjenju logicke jedinice na pin zapravo startuje tajmer u MikroC-u? Dal bi nadziranje statusa pina moglo da se odradi koristeci "while" petlju?
ovako nekako:

while(1)
{
if (PORTE.RE0==1)

*pa sada cuvena funkcija za pokretanje tajmera

else //nema logicke jedinice na RE0

*zaustavljanje tajmera

*Rezultat //vrednost izmerena tajmerom

Lcd_Out (1,1,Rezultat)
}

Tako nekako?
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.103.*



+321 Profil

icon Re: Merenje trajanja impulsa PIC-om29.12.2009. u 20:54 - pre 173 meseci
Jesi li u tih 5 dana čitao dokumentaciju za izabrani kontroler (nego, ne reče koji si odabrao? Vidim da nije 16F627.)?. Ako pročitaš neki od mojih starijih postova videćeš da insistiram na čitanju dokumentacije, ne zato što neću da pomognem, nego što kada se savlada čitanje dokumentacije pitanja kao ovo "kako da pokrenem tajmer 1" postaju besmislena jer za kratko vreme sam pronadješ odgovor - bez čekanja na nečiju pomoć. Mogu samo da ti kažem da bi pokretanje tajmera trebalo da bude isto u bilo kom programskom jeziku i to podešavanjem odredjenih registara. Pročitaj dokumetaciju pa ako nešto nije jasno, tu smo da pomognemo.
Što se tiče samog algoritma, vrlo je moguće da si prevideo jednu sitnicu. Naime, pošto ti jednostavno ne znaš koje će stanje na pinu da bude onog momenta kada program naidje na testiranje (vrlo je moguće da je na pinu poodavno log. 1) moraš prvo da se uveriš da je na pinu log. 0 pa tek onda ideš na čekanje log. 1. Nadam se da si shvatio suštinu. A da li ćeš da radiš sa IF ili WHILE, to je već stvar izbora.

Pozdrav.
Sinisha
 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: Merenje trajanja impulsa PIC-om29.12.2009. u 22:40 - pre 173 meseci
@conver
kao sto rece rsinisa nisi napisao koji PIC koristis.
ideja koju ti je dao radi posao, a sto se tice koda, sam biras. ja proveru stanja radim u samom interrupt.u (kada je kod kraci, naravno)
znaci, imao bi:
Code:

void interrupt(){
if(PORTB.B0) //ne moras da pises ==1
   {
    //radi sta ti treba
    //ponovo podesis tajmer
    }

void main() {
//podesavanje registara, stanja pinova/portova, itd
.
.
.

while(1){}
}

ne znam sta ce ti else //nema logicke jedinice na RE0???
PIC radi na cekanje i prekid i na to se sve svodi. saceka da se desi neka promena (spoljna: promena stanja pinova.... ili unutrasnja: punjenje tajmera...), "skace" u potprogram za prekid, izvrsava odredjeni deo i ponovo se vraca na cekanje.
mislim da je ovo sa else..... nepotrebno, jer ce tebi na pinu biti 0 sve dok se ne desi promena.

ovako bih ja uradio. a sto se tice tajmera i mikroC, imas veoma dobar help + datasheet za tvoj PIC, dobro protumaci, ako ne ide, javi se.
pozdrav.
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
93.86.18.*



+8 Profil

icon Re: Merenje trajanja impulsa PIC-om30.12.2009. u 22:49 - pre 173 meseci
Koliko se sećam u tom sportu figuriraju 2 promenljive:

1)frekvencija ili ti RPM radilice
2)trajanje ili ti period impulsa, od trajanja otvorenosti dizne zavisi koliko će goriva uleteti u cilindar

Za frekvenciju možeš da hvataš samo rastuće ili samo opadajuće ivice, dok za period moraš da hvataš i rastuće i opadajuće ivice.
Za tu namenu postoji INTERRUPT ON CHANGE funkcija na B portu pinovi od RB4 do RB7.

U interupt rutini
1) stopiraš tajmer
2) prepišeš vrednost iz njega u RAM
3) upišeš nulu u tajmer
4) startuješ tajmer

U Main-u se dalje grudvaš sa snimljenim vrednostima u ramu i ispisom na LCD-u.
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
93.86.147.*



+321 Profil

icon Re: Merenje trajanja impulsa PIC-om31.12.2009. u 07:33 - pre 173 meseci
Smatram da ovde nema potrebe za interaptom jer kontroler ionako nema šta da radi u medjuvremenu, ali to je stvar izbora, afiniteta i stila samog programera; svako rešenje koje radi ono što je potrebno je dobro rešenje.

Pozdrav.
Sinisha
 
Odgovor na temu

mnn
sm

Član broj: 85435
Poruke: 723
*.ptt.rs.



+25 Profil

icon Re: Merenje trajanja impulsa PIC-om31.12.2009. u 15:58 - pre 173 meseci
Conver dali si pokrenuo TMR1 u Mikroc?Meni se desilo da simulator neprikazuje rad TMR0 i ne dolazi do interapta ,a iskompajlirani kod radi u Oshonsoft simulatoru.Naravno digao sam ruke od njega i ostao na asembleru.
 
Odgovor na temu

veselinovic
Jovan Veselinovic
Ist. Sarajevo

Moderator
Član broj: 7761
Poruke: 3860
91.191.7.127



+333 Profil

icon Re: Merenje trajanja impulsa PIC-om31.12.2009. u 16:05 - pre 173 meseci
Citat:
VRadule: Koliko se sećam u tom sportu figuriraju 2 promenljive:

1)frekvencija ili ti RPM radilice
2)trajanje ili ti period impulsa, od trajanja otvorenosti dizne zavisi koliko će goriva uleteti u cilindar

.

Pored te dvije postoji i treca promjenljiva a to je podpritisak u usisnoj grani.
Umjesto podpritiska moze se mjeriti i protok vazduha.
A ako zelis to ljudski da uradis, treba da kontrolises u ugao paljenja prema novoj kolicini goriva, inace ti motor nece dugo trajati.
 
Odgovor na temu

shpiki
Student
Novi Sad

Član broj: 50342
Poruke: 1651



+62 Profil

icon Re: Merenje trajanja impulsa PIC-om31.12.2009. u 16:06 - pre 173 meseci
offtopic
@mnn
koji simulator si koristio? ja radim sa Proteus.om i do sad nisam imao nikakvih problema.
There are only 10 types of people in the world:
those who understand binary, and those who don't.
 
Odgovor na temu

mnn
sm

Član broj: 85435
Poruke: 723
*.ptt.rs.



+25 Profil

icon Re: Merenje trajanja impulsa PIC-om01.01.2010. u 08:29 - pre 173 meseci
Simulator u kompajleru neprikazuje rad TMR0.
 
Odgovor na temu

conver
Milos Milutinovic
Paracin

Član broj: 226436
Poruke: 112
212.200.65.*



+1 Profil

icon Re: Merenje trajanja impulsa PIC-om23.02.2010. u 08:34 - pre 171 meseci
Evo ja posle pauze ponovo nesto budzio i to nesto izgleda ovako:

#include <16f887.h>
#use delay(clock=1024000)
#include "LCD.c"

void main() {
int impuls;

lcd_init();
delay_ms(1000);
lcd_cursor_off();

setup_counters(rtcc_internal,rtcc_div_256);

while(true)
{
if (!input(PIN_B2))
{
set_rtcc(0);
}
else
{
impuls = get_rtcc();

printf(lcd_putc,impuls);
}
}

}

Kod ispisan u CCS-u, i delimicno radi, ali mi na lcd-u ne ispise vreme trajanja impulsa vec neke kukice , kvadratice i upitnike umesto INTEGER IMPULS ! Sta mu je?
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Merenje trajanja impulsa PIC-om

[ Pregleda: 3661 | Odgovora: 13 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.