Problemi di misurazione del tempo tra due impulsi

Z

zanor

Guest
Solo per divertimento sto provando a fare una digitale RPM metro per la mia auto.Ma io non
sono in grado di ottenere l'esatto letture.
Ho misurato con un oscilloscopio che non ci deve essere ~ 0,06802721 sec (14,7 Hz), tra gli impulsi quando il mio motore è al minimo."TMR_count" nel mio codice sorgente deve essere quindi 66.Ma io
sono sempre 61.È ~ 0,00512 sec troppo lento, perché?
C'è qualche ritardo timer / interrompere il funzionamento non lo so?

Sto usando uno PIC16F84a su una breadboard.Può il "lungo" la strada da cristalli di microchip rallentarlo?I cavi sono ~ 3-4 centimetri ...

Ecco il mio codice, in MikroC formato.
Codice:# include <built_in.h> / / Per la verità (); e Hi ();int i = 0;

int TMR_count = 0; / / 1x = 0.001024 sec

int TMR_value = 0; / / 1x = 0.000004 sec

RPM int = 0;

float TEMPO = 0;void interrupt () (

if (INTCON.INTF)

(

if (i <= 63)

(

TMR_value = TMR0;

TMR0 = 0;TEMPO = (TMR_count * 0,001024) (TMR_value * 0.000004); / / di tempo tra due scintille

RPM = (1 / ORA) * 60 / / RPM, 2 coiler e sprecato scintilla scintilla = 1 / rivoluzioneEEPROM_WRITE (i, TMR_count);

i ;

EEPROM_WRITE (i, TMR_value);

i ;TMR_count = 0;

)

INTCON.INTF = 0;

)

if (INTCON.T0IF)

(

TMR_count ;

INTCON.T0IF = 0;

)

)void main () (

PORTA = 0;

Trisa = 0b00001000;

PORTB = 0;

TRISB = 0b00000001;PORTB.B3 = 1;

Delay_ms (1000);

PORTB.B3 = 0;INTCON.RBIF = 0;INTCON.GIE = 1; / / Abilita Interrupt

INTCON.INTE = 1; / / Abilita Interrupt su RB

INTCON.T0IE = 1; / / Attiva timer 0 owerflow interrompereOPTION_REG = 0x81; / / Pullups ANDICAPPATI!while (1);)

 
L'esecuzione di uno EEPROM scrivere nel tuo interrompere la funzione si traduce in un esaurimento delle EEPROM
all'interno di almeno un paio d'ore e anche i tempi enormi errori.

 
FVM ha scritto:

L'esecuzione di uno EEPROM scrivere nel tuo interrompere la funzione si traduce in un esaurimento delle EEPROM all'interno di almeno un paio d'ore e anche i tempi enormi errori.
 

Welcome to EDABoard.com

Sponsor

Back
Top