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

Frekvencmetar sa PIC16F887, problem.....

[es] :: Elektronika :: Mikrokontroleri :: Frekvencmetar sa PIC16F887, problem.....

Strane: 1 2

[ Pregleda: 8130 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
109.106.235.*



+5 Profil

icon Frekvencmetar sa PIC16F887, problem.....26.04.2010. u 18:27 - pre 170 meseci
Pozdrav svima,
pokusavam da napravim frekvencmetar ali mi se javio problem :(
On bi radio na sledeci nacin: jednostruko ispravim signal nakon cega sa schmitom dobijam 1 i 0, pomocu toga otvaram tranzistor koji vodin na INT0. Frekvenciju merim tako sto interaptom na uzlaznu ivicu ukljucim TMR0, a sledecim interaptom iskljucujem tajmer, za to vreme na interapt tajmera se povecava brojac. Kako znam vrednost tajmera i broj interapta, ako pomnozim to dvoje dobijam periodu signala u us (zbog tajmera us). Ovo mi je da izmerim samo jednu periodu, ako bih hteo non stop da merim onda ne bih isklucivao tajmer nego bi na svaku drugu uzlaznu ivicu resetova brojac, ali to sada nije bitno, gore navedeno mi bas ne radi kako sam zamislio. Naime uvek mi gresi za nekih 9%. Evo koda, pa vidite. Ako imate drugu ideju dobro je dosla.... Hvala

Code:

int i=0,pe=0,k=0,m=1;
float re=0,ff=0,fr=0,procenat=9.518847368;  
char txt[13];

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RA0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISA0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;

void interrupt(){

     if(INTF_bit){
     k++;
     if(k<100){
     switch(pe){
               case 0:INTCON=0b10110000;TMR0=120;pe=1;break;   //ovim regulisem da se na drugu uzlaznu ivi gasi tajmer
               case 1:INTCON=0b10010000;pe=0;m=0;break;            // promenljiva k sluzi samo da mi duze radi simulacija (nebitna je)
     }
     }
     }
     if(k==100){
                 PORTA=2;
                 if(i!=0)PORTA=2;
                 TRISB=0;
                 INTCON=0;
     }
     INTF_bit=0;
     if(T0IF_bit){
                  if(m){
                  i++;                 // brojac
                  TMR0=120;   
                  }
                  T0IF_bit=0;
     }
}
void main() {

     OPTION_REG=0b01001000;
     INTCON=0b10010000;
     TRISA=0;
     Ansel=0;
     Anselh=0;
     TRISB=1;
     PORTA=0;
     PORTB=0;

     while(1){
              if(k==100){
              re=1000000/(i*161);                       
              fr=ff-(procenat*ff)/100;               //racunanje frekvencije uz oduzimanje procenta greske                            
              FloatToStr(fr,txt);                       
              Lcd_Init();
              Lcd_Cmd(_LCD_CURSOR_OFF);
              Lcd_Out(1,1,txt);                           
              }
     }
}


Konkretno interesuje me kako da merim vreme izmedju 2 interrupta, objasnjenje za ovo bi mi dosta pomoglo.....
 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
*.dynamic.isp.telekom.rs.



+8 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....26.04.2010. u 20:31 - pre 170 meseci
Mislim da bi ti upotreba Capture funkcije olakšala posao.
Gledaj da koristiš što jednostavniji tip promenljive koji ti završava posao.
Obrada Float promenljive troši mnogo vremena.

Za početak probaj na displeju da prikažeš samo stanje vrednosti tajmera bez kalkulacija i Float promenljivih.

Između dva merenja ostavi dosta vremena, recimo pola sekunde, da možeš okom da ispratiš na displeju šta se dešava.
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
109.106.235.*



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....26.04.2010. u 22:20 - pre 170 meseci
Razmak izmedju 2 merenja cu svakako ostaviti, za sada radi samo jedno merenje i to je to... Oko promenljivih i kasnjenja, ja sam za pocetak izbacivao vrednost brojaca koji je tipa int i opet mi se nije uklapalo (kada pomnozim vrednost brojaca i vreme tajmera ne dobijam vreme ulazne periode tj. merene frekvencije)
Nekada se desi da za razlicite frekvencije dobijam istu vrednost brojaca.....Kako?

Interesuje me da li se to mora meriti ovako kako sam ja radio (brojacem i tajmerom) ili postoji nesto sto bi radilo kao stoperica, da je ukljucim prvim interaptom a iskljucim drugim?

Unapred hvala
 
Odgovor na temu

rsinisa
Siniša Radanočević
Smederevo

Član broj: 2716
Poruke: 1586
*.dynamic.isp.telekom.rs.



+321 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 06:42 - pre 170 meseci
Kažeš, greška ti je 9%. Jel to za svaku frekvencu koju si merio ili testiraš samo sa jednom? Kolike su min i max frekvenca koju želiš/imaš potrebe da meriš?

Pozdrav.
Sinisha

 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 08:44 - pre 170 meseci
Nisi postavio šemu i nisi napisao koji frekventni opseg misliš da meriš.
U osnovi mislim da ti je pristup pogrešan, treba da koristiš interne brojače a ne interrupt, kao što je napisao Vradule.
Za niže frekvencije, recimo do 1kHz, koristiš capture funkciju i u capture interrupt-u dobijaš "priraštaj" brojača od
poslednjeg interrupta. Naravno, broječu je izvor clock-a neki interni takt, što brži to bolje.
Taj "priraštaj" brojača je onda perioda tog signala u broju taktova timer-clock-a.
Za više vrekvencije pak koristi brojač tako da mu je takt sam ulazni signal koji, preko jednog "I" kola prekidaš sa vremenskom bazom,
recimo nekim PWM izlazom drugog brojača u "single shot" modu.

Ovako kako si počeo će ti ostajati uvek neka merna greška, jer interrupti imaju uvek neku latencu koja u jeziku C nije konstantna.

I još nešto, da li si razmišljao o tipu promenljnjivih koje koristiš?
Šta je na primer int? signed int ili unsigned int?
Ili ovo: re=1000000/(i*161);
Već kod satnja i=204 može doći do prekoračenja opsega promenljive.
.
.
.
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.dynamic.sbb.rs.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 09:39 - pre 170 meseci
branko_g:
Opseg bi bio do 100Hz... Mozes li mi pojasniti koriscenje funkcije capture?

rsinisa:
Greska od oko 9% je prosecna greska, merio sam oko 20 frekvencija i izveo sredju gresku u %.
 
Odgovor na temu

branko_g
Merna tehnika i elektronika

Član broj: 159227
Poruke: 756
*.static-fiber.styrion.net.



+9 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 12:33 - pre 170 meseci
Nisam radio sa PIC-om ali je "capture" funkcija kod svih kontrolera ista:
-Brojac i njemu pripadajuća capture-compare jedinica(registri) čine jednu celinu.
-Ako brojač radi sa izvorom internog takta onda mu se sadržaj povećava od 0 pa do maksimalne verdnosti
obično 8 ili 16bita u zavisnosti od primenjenog brojača i kontrolera.
-U PWM modu se taj, stalno rasteći sadržaj brojača upoređuje sa sadržajem compare registra i prilikom
prekoračenja te vrednosti se menja stanje PWM signala-> vrednost u compare registru određuje širinu impulsa.
-U "capture" moru se trenutna vrednost brojača kopira u capture registar prilikom negativne, pozitivne ili obe ivice
na "capture" ulazu, bez uticaja programa.

U korespondirajućem "capture interrupt-u" se onda sadržaj capture registra kopira u neku promenljivu koja služi za dalju obradu.
Razlika sadržaja tog Capture registra u dva uzastopna interrupt-a je mera periode signala iz koje onda izračunaš frekvenciju.
Naravno moraš paziti na pekoračenje opsega brojača(overflow).

Moraš prvo prostudirati Datasheet ili Appnote za tvoj procesor i naći neke primere kao izvorni kod.

 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.adsl.beotel.net.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 19:07 - pre 170 meseci
Citao sam datasheet (16F877)
evo nekih delova:



ovde objasnjava kako radi....koliko sam pohvatao timer1 mora da radi i kada se desi neka promena na RC2 (zavisi kako definisem) capture ocita vrednost timer1, i to mi je kao stoperica sto mi i treba. Ali kako da tu vrednost ja u programu ocitam i dalje koristim?



ovde podesavam CCP1




ovde podesavam timer1 i ukljucujem ga

evo koda:

Code:

unsigned char i=0;

void interrupt(){
     // kako da ocitam vrednost ?
     CCP1IF_bit=0;
}

void main() {
     OPTION_REG=0;
     INTCON=0b11000000;
     PIE1=0b00000100;
     T1CON=0b00001001;
     CCP1CON=0b00000101;
     TRISC=0b00000100;
     PORTC=0;
     while(1){}

}


Da li su dobro podeseni registri?
Prikačeni fajlovi
 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
212.200.65.*



+11 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 20:14 - pre 170 meseci
In Capture mode, CCPR1H:CCPR1L captures the
16-bit value of the TMR1 register when an event occurs.

Evo ga iz datasheeta,znaci procitas vrednost iz ova dva registra.

Moras da pazis na prekoracenje tajmera,stavio si preskaler 1:1,sa kristalom od 4Mhz prekoracenje se javlja za ~65 ms.
Sa brzim kristalom,ovo vreme je jos manje.Recimo sa 12Mhz imas vrednost od 22 ms,tako da ako je frekvencija niska,reda par desetina herca,moze da se desi da imas pogresno ocitavanje.
Bolje je da stavis preskaler 1:4 ili 1:8,jer ionako neces da meris visoke frekvencije.

[Ovu poruku je menjao vukboban dana 27.04.2010. u 21:24 GMT+1]

[Ovu poruku je menjao vukboban dana 27.04.2010. u 21:32 GMT+1]
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.adsl.beotel.net.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 20:24 - pre 170 meseci
evo koda, samo me jos interesuje kako da to prevedem u int da bih mogao da racunam frekvenciju, koja treba konverzija?

Code:

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;

unsigned char H,L,txt,txt2;


void interrupt(){
     if(CCP1IF_bit){
                    H=CCPR1H;
                    L=CCPR1L;
                    TMR1H=0;
                    TMR1L=0;
                    CCP1IF_bit=0;
     }
     if(TMR1IF_bit){
                    TMR1IF_bit=0;
     }
}
void main() {
     OPTION_REG=0;
     INTCON=0b11000000;
     PIE1=0b00000101;
     T1CON=0b00001001;
     CCP1CON=0b00000101;
     TRISC=0b00000100;
     PORTC=0;
     TRISB=0;
     PORTB=0;
     while(1){
              //koju konverziju da stavim???
              //ako stavim samo ispis H, nesto nece, zasto?
              Lcd_Cmd(_LCD_CLEAR);
              Lcd_Cmd(_LCD_CURSOR_OFF);
              Lcd_Init();
              Lcd_Out(1,1,H);
              Lcd_Out(2,1,L);
     }
}
 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
212.200.65.*



+11 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 20:43 - pre 170 meseci
Nece to tako...
moras tu promenljivu da prevedes u string.
U mikroC postoji komanda za konverziju,ByteToStr,IntToStr...
znaci pises nesto ovako:

char txt1[5]:
char txt2[5];
ShortToStr(H,txt1);
ShortToStr(L,txt2);
LcdOut(1,1,txt1);
Lcd_Out(2,1,txt2);

naravno L i H moraju da budu short,a ne char.

I,da ovim kodom dobijas period,tj vreme,a ne frekvenciju.
nju moras da racunas
 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
212.200.65.*



+11 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 21:11 - pre 170 meseci


f=kristal/(H*256+L)*4

kristal je brzina kristala u hercima recimo 8000000
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.adsl.beotel.net.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 21:21 - pre 170 meseci
Hvala na brzim odgovorima uspeo sam da ocitam i ispisem promenljive H i L, ali kad uvrstim ovu formulu dobija npr 20832.99 a ulazna frekvencija mi je 2Hz....
I jos mi simulacija nesto prijavljuje, evo slike:



a evo i koda, mozda sam nesto zeznuo:
Code:

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;

short H,L;
char txt[5];
float fre=0;



void interrupt(){
     if(CCP1IF_bit){
                    H=CCPR1H;
                    L=CCPR1L;
                    TMR1H=0;
                    TMR1L=0;
                    CCP1IF_bit=0;
     }
     if(TMR1IF_bit){
                    TMR1IF_bit=0;
     }
}
void main() {
     OPTION_REG=0;
     INTCON=0b11000000;
     PIE1=0b00000101;
     T1CON=0b01101001;
     CCP1CON=0b00000101;
     TRISC=0b00000100;
     PORTC=0;
     TRISB=0;
     PORTB=0;
     while(1){

              fre=4000000/((H*256+L)*4);
              FloatToStr(fre,txt);
              Lcd_Cmd(_LCD_CLEAR);
              Lcd_Cmd(_LCD_CURSOR_OFF);
              Lcd_Init();
              Lcd_Out(1,1,txt);

     }
}
Prikačeni fajlovi
 
Odgovor na temu

VRadule
Vladimir Radulovic

Član broj: 191689
Poruke: 211
*.dynamic.isp.telekom.rs.



+8 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 22:01 - pre 170 meseci
Kad okine interapt vrednosti iz gornjeg i donjeg bajta tajmera1 se automatski kopiraju
u gornji i donji bajt CCPR registra i ostaju smrznute u njemu čekajući tebe da ih pročitaš.

S obzirom da su one smrznute, ne moraš preterano žuriti sa čitanjem CCPR registra,
ali požuri da resetuješ tajmer, što više čekaš, veća će ti biti greška prilikom sledećeg isčitavanja.

Ako ti tajmer prevrne preko 65535, dalje kreće da broji od nule, tako da moraš da vodiš računa
o kloku i preskalerima za očekivane frekvencije merenja.

Pročitana vrednost je Word tipa, pazi u koju promenljivu i kako ćeš da je spakuješ (0-65535).

 
Odgovor na temu

vukboban
Boban Vukovic
PANCEVO

Član broj: 116735
Poruke: 250
212.200.65.*



+11 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....27.04.2010. u 22:15 - pre 170 meseci
Mislim da ti je tajmer prevrnuo,kao sto VRadule kaze.

Za 2 herca imas period od 500ms,za 500ms tajmer,ako je preskaler na 1:1 i klok je 4Mhz,okrene bar 7 ili 8 puta.

Na 4Mhz najveci period koji mozes da meris je 65ms,ili oko 15 hz je minimalna frekvencija.

stavi preskaler na 1:8 ako meris male frekvencije.

I nemoj da stavljas float,nego unsigned int,sta ce ti ono iza zareza.


Jos nesto,timer interapt ti uopste ne treba,iskljuci ga. H i L nemoj da citas u interaptu,nego u main funkciji,da bi sto manje vremena trosio u interaptu.

Eventualno mozes da inkrementiras neku promenljivu svaki put kad tajmer okrene,pa da i nju uvrstis u formulu,a da je resetujes pri resetovanju tajmera.


[Ovu poruku je menjao vukboban dana 27.04.2010. u 23:28 GMT+1]

[Ovu poruku je menjao vukboban dana 27.04.2010. u 23:29 GMT+1]
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.adsl.beotel.net.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....28.04.2010. u 13:12 - pre 170 meseci
Evo koda koji radi, samo jos ne u potpunosti :(
Naime izbacuje mi vrednost frekvencije (tacno ako je vrednost celobrojna), ali ako stavim ulaznu frekvenciju, npr 54.5Hz, on mi izbacuje 53.9999999 isto kao da je ulazna 54.
53.999999 izbacuje jer sam stavio da je promenljiva float....
Interesuje me kako da ocitam tacnu vrednost, tacnije zasto ne ocitava vrednost od 54.5Hz

Code:

sbit LCD_RS at RB4_bit;
sbit LCD_EN at RB5_bit;
sbit LCD_D4 at RB0_bit;
sbit LCD_D5 at RB1_bit;
sbit LCD_D6 at RB2_bit;
sbit LCD_D7 at RB3_bit;

sbit LCD_RS_Direction at TRISB4_bit;
sbit LCD_EN_Direction at TRISB5_bit;
sbit LCD_D4_Direction at TRISB0_bit;
sbit LCD_D5_Direction at TRISB1_bit;
sbit LCD_D6_Direction at TRISB2_bit;
sbit LCD_D7_Direction at TRISB3_bit;

unsigned H,L;
unsigned char txt[8];
float fre=0,k=0;

void interrupt(){
     if(CCP1IF_bit){
                    k=1;
                    TMR1H=0;
                    TMR1L=0;
                    CCP1IF_bit=0;
     }
}
void main() {
     OPTION_REG=0;
     INTCON=0b11000000;
     PIE1=0b00000101;
     T1CON=0b00110001;
     CCP1CON=0b00000101;
     TRISC=0b00000100;
     PORTC=0;
     TRISB=0;
     PORTB=0;
     while(1){
              if(k){
                    k=0;
                    H=CCPR1H;
                    L=CCPR1L;
              }
              fre=(10000000/((H*256+L)*4))/8;
              FloatToStr(fre,txt);
              Lcd_Cmd(_LCD_CLEAR);
              Lcd_Cmd(_LCD_CURSOR_OFF);
              Lcd_Init();
              Lcd_Out(1,1,txt);
              Delay_ms(10);

     }
}


Ovo pitam jer mi treba precizno ocitavanje, kasnije bih slicno ovome odredjivao fazni stav, kod ce biti okacen kasnije, ako ovo proradi do kraja..
Hvala
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....13.05.2010. u 18:02 - pre 169 meseci
Pozdrav svima....imam problem
Kada sam isprogramirao frekvencmetar na 16F877, kao takt mi je posluzio 16F84A koji je invertovao PORTB.B0 na svakih 10ms, sto bi 877 trebao da izracuna kao 50Hz, tacnije, posto radim sa integer, moze ispisati 499 ili 498.... i to saljem preko rs232 na pc. Problem je sto na racunara prikazuje 47 i ako promenim frekvenciju on i dalje prikazuje 47...
Evo koda od 887:

Code:

unsigned H,L;
unsigned char fr[8],txt1[8];
unsigned int  fre=0,ku=1;
unsigned int j,k=0;

void interrupt(){
     if(CCP1IF_bit){
                    k=1;
                    TMR1H=0;
                    TMR1L=0;
                    CCP1IF_bit=0;
     }
     if(TMR1IF_bit){
                    TMR1IF_bit=0;
     }
}
void main() {
     OPTION_REG=0;
     INTCON=0b11000000;
     PIE1=0b00000101;
     T1CON=0b00110001;
     CCP1CON=0b00000101;
     TRISC=0b00000100;
     PORTC=0;
     TRISB=0;
     PORTB=255;
     UART1_Init(9600);
     Delay_ms(100);
     while(1){
              if(k){
                    k=0;
                    H=CCPR1H;
                    L=CCPR1L;
              }
              fre=((25000000/((H*256+L)))/8);//*1000;
              if(ku){
              IntToStr(fre,fr);
              UART1_Write_text(fr);
              ku=0;
              }
     }
}


i od 84

Code:

void interrupt(){
     if(T0IF_bit){

                  PORTB=!PORTB;
                  TMR0=178;
                  T0IF_bit=0;
     }
}

void main() {
     OPTION_REG=0b00000110;
     INTCON=0b10100000;
     TMR0=178;
     TRISB=0;
     PORTB=0;
     while(1){}

}
 
Odgovor na temu

Horvat

Član broj: 17332
Poruke: 3042
dynamic-109-121-84-94.adsl.eunet.rs.



+165 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....13.05.2010. u 18:58 - pre 169 meseci
zasto ti je formula za proracunavanje frekvencije bas ova?
Citat:
fre=((25000000/((H*256+L)))/8);//*1000;


nije mi jasno sta ti uopste ocitava impulse od '84,jer sve vidim da je "fiksno"


kakvi su ti uslovi "if(k)" i "if(ku)"??

----

inace,jedan savet, pisi komentare pored funkcija
kasnije kada budes se vratio na kod (kroz par meseci,da ne pominjem godine) neces se secati zasto si to bas tako uradio odnosno sta ti taj deo treba raditi
 
Odgovor na temu

zivadin_despot
Živadin Despotović
Novi Sad

Član broj: 175438
Poruke: 704
*.dynamic.isp.telekom.rs.



+5 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....13.05.2010. u 21:18 - pre 169 meseci
Formula je dobijena eksperimentalno :))))
'84 daje impulse na portb.bo njen izlaz (portb.bo) direktno spajam na ccp1 na 877...
if(k) je da mi racuna frekvenciju kad udje u interrupt gore je definisana
a if(ku) je da mi samo jednom posalje na pc rezultat, znaci kad jednom izracuna posalje i vise ne salje, to je samo dok eksperimentisem da mi ne lete brojevi....

 
Odgovor na temu

Horvat

Član broj: 17332
Poruke: 3042
dynamic-109-121-84-94.adsl.eunet.rs.



+165 Profil

icon Re: Frekvencmetar sa PIC16F887, problem.....13.05.2010. u 21:36 - pre 169 meseci
da,u medjuvremenu sam skontao sta si sa tim uslovima hteo

ali i dalje nisam skontao ko pamti vremena pomocu kojeg se racuna perioda,odnosno ucestanost

od cega je "ccpr1" skracenica?
 
Odgovor na temu

[es] :: Elektronika :: Mikrokontroleri :: Frekvencmetar sa PIC16F887, problem.....

Strane: 1 2

[ Pregleda: 8130 | Odgovora: 25 ] > FB > Twit

Postavi temu Odgovori

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