Frequenzimetro con pic18

10 Anni 4 Mesi fa - 10 Anni 4 Mesi fa #6 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Frequenzimetro con pic18
Ciao,

se hai un periodo finestra di 1Hz, considera che un Hz di errore lo hai sempre.
Per cui abbassando la frequenza in ingresso l´errore percentuale sulla misura e´ piu´ grande.

1Hz su 10Hz e´ il 10% mentre su 100Hz e´ 1%.

Oltre che a dover calibrare il clock del PIC sarebbe interessante sapere qual´e´ la tua sorgente e come stabilisci la sua frequenza
...l´errore totale e´ data dalla somma del tuo sistema e quello della sorgente.

In questi casi e´ bene avere delle sorgenti "ottime", magari con poche frequenza di riferimento.

Come detto da Gabriele, controlla anche gli aspetti software affinché non siano creati ritardi e perdite di tempo durante la misura.

Saluti,

Mauro
Ultima Modifica 10 Anni 4 Mesi fa da Mauro Laurenti.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
10 Anni 4 Mesi fa #7 da paoletto
Risposta da paoletto al topic Frequenzimetro con pic18
Ciao Mauro, quindi mi stai dicendo che si può migliorare la misura non contando le occorrenze dei fronti di salita in un secondo ma bensì in mezzo secondo, un quarto, un ottavo di secondo e così via?

Se è così però non sono daccordo, semmai devo aumentare la finestra, non diminuirla, non so se mi spiego.
Cioè perdere 10 istruzioni macchina su un conteggio di 1 secondo è molto meno grave che perderne lo stesso su un conteggio di un ottavo di secondo, l'incertezza diminuisce o sbaglio?
Però forse ho capito cosa vuoi dire, cioè realizzare ritardi lunghi è molto meno preciso che realizzarne di piccoli?

Per quanto riguarda l'aspetto SW si potrebbe già migliorare la cosa se non dovessi far ripartire il timer0 ogni volta: non capisco perchè la scrittura della funzione WriteTimer0(int) non ha praticamente effetto se la scrivo dopo aver impostato i Timers nel main, ma funziona solo all'interno della ISR!
In effetti a me non serve farlo ripartire di volta in volta nuovamente, devo solo impostarlo ad un certo valore per ottenere il ritardo desiderato.

La strumentazione a mia disposizione non è un granchè, ho la MyDAQ ed un generatore di segnali un po vetusto ma funzionante con display a 7 segmenti al max 2 cifre dopo la virgola per visualizzare la frequenza e quindi ti lascio immaginare l'accuracy sulla lettura :blink: ma ora che ci penso dovrei avere un oscilloscopio analogico da qualche parte, un cascione enorme..
Vedo cosa posso fare..al max vado in labo e chiedo di mettermi a disposizione un po di strumenti.

Intanto cerco di usare il modulo capture che mi sembra la soluzione migliore in assoluto.

Saluti
Paoletto.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • paoletto
  • Avatar di paoletto
  • Elite Member
  • Elite Member
Di più
10 Anni 4 Mesi fa #8 da Mauro Laurenti
Risposta da Mauro Laurenti al topic Frequenzimetro con pic18
Da quello che dici sospetto che una parte dell´errore sia proprio dalla tua sorgente.

riguardo alla finestra temporale, per migliorare devi renderla piu´ grande e non piu´ piccola.
...sarebbe la legge dell´integrazione.
...maggiore e´ il tempo di misura e migliore e´ la risoluzione che riesci ad ottenere.

Un oscilloscopio ti aiuta a tarare il clock principale, ma se riesci a mettere mani su un frequency counter e´ meglio.

Saluti,

Mauro

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • Mauro Laurenti
  • Avatar di Mauro Laurenti
  • Moderator
  • Moderator
Di più
10 Anni 4 Mesi fa #9 da paoletto
Risposta da paoletto al topic Frequenzimetro con pic18
Ah ecco, volevo ben dire, quindi devo avere un ritardo maggiore :silly: , vedo cosa posso inventarmi. :cheer:

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • paoletto
  • Avatar di paoletto
  • Elite Member
  • Elite Member
Di più
10 Anni 4 Mesi fa - 10 Anni 4 Mesi fa #10 da paoletto
Risposta da paoletto al topic Frequenzimetro con pic18

Rendering Error in layout Message/Item: array_keys(): Argument #1 ($array) must be of type array, null given. Please enable debug mode for more information.

Si prega Accedi o Crea un account a partecipare alla conversazione.

  • paoletto
  • Avatar di paoletto
  • Elite Member
  • Elite Member
Di più

Registrati al sito

Accedi a tutte le risorse e articoli non visibili pubblicamente, puoi registrarti con pochi passi.

Registrati al sito LaurTec.

Login