Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Maggiore precisione con contagiri PIC

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

1
voti

[41] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 15 lug 2011, 14:41

Chiedo scusa per l'assenza.

Alla fine sono riuscito ad arrivare ad una soluzione. Ho lasciato perdere per il momento TMR1 e ho messo mano al codice inizale basto su TMR0. Ho risolto facendo una media sui valori letti e confrontando con il valore istantaneo. Non è precisisimo ma almeno ora ho un errore di crca 20 giri ad impulso perso che per quello che devo fare va benissimo. Magari è solo questione di filtrare di più via hardware. :-)

Saluti

Edge
Avatar utente
Foto UtenteEdge
60 1 3
New entry
New entry
 
Messaggi: 98
Iscritto il: 3 ago 2010, 17:22
Località: Ro Ferrarese (Ferrara)

0
voti

[42] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 15 lug 2011, 14:54

Ah, magari una domanda la farei se potete rispondermi.

Adesso che la variazione è più contenuta, può capitare che per esempio se sto segnando 1000 giri, all'aggiornamento successivo potrei leggere (se perdo la lettura del'mpulso) 980, oppure 1020.

Ce un modo via software per mantenere fissa la lettura se la viariazione dei rpm è contenuta in +/- 20 giri di errore? 60/120 giri di errore prima erano troppi, se invece ora riesco a visualizzare sempre la stessa cifra finché la variazione è contenuta in +/-20 giri è più che accettabile per quello che mi riguarda.

Edge
Avatar utente
Foto UtenteEdge
60 1 3
New entry
New entry
 
Messaggi: 98
Iscritto il: 3 ago 2010, 17:22
Località: Ro Ferrarese (Ferrara)

0
voti

[43] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 19 lug 2011, 16:22

Allora, per provare ad aggiornare il display e quindi mantenere fissa la lettura se la variazione di rpm è compresa tra +/- 20 rpm, ho preso due lettore successive della media degli rpm, poi ho fatto la differenza e salvato la differenza in una variabile int. Poi ho scritto così:

if(diff<21 && differenza >-21)
asm nop;
else
Visualizza su LCD...

Purtroppo ottengo lo stesso delle variazioni, sicuramente meno di prima, ma comunque nell'arco di 1 minuto 3/4 variazioni le ho comunque anche se queste sono contenute in +/- 20 giri.
Se avete qualche idea è ben accetta.

Edge
Avatar utente
Foto UtenteEdge
60 1 3
New entry
New entry
 
Messaggi: 98
Iscritto il: 3 ago 2010, 17:22
Località: Ro Ferrarese (Ferrara)

0
voti

[44] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 29 lug 2011, 9:06

Scusate se scrivo solo ora ma sono stato impegnato. Ho rimesso mano al contagiri per mantenere la variazione entro i +/- 20 giri. Semplicemente al posto della procedura asm nop ho messo un goto che permette il salto della visualizzazione se non si verifica la condizione e poi ho aggiunto delle parentesi in più perché a volte veniva solo controllata la prima condizione e saltata la seconda:

if((diff<21) && (diff>-21))
...
...
...

Senza le parentesi a volte capitava che se la prima condizione era vera, veniva saltata la seconda. Aggiungendo le parentesi ho evitato il problema.

Saluti

Edge
Avatar utente
Foto UtenteEdge
60 1 3
New entry
New entry
 
Messaggi: 98
Iscritto il: 3 ago 2010, 17:22
Località: Ro Ferrarese (Ferrara)

Precedente

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 3 ospiti