Cos'è ElectroYou | Login Iscriviti

ElectroYou - la comunità dei professionisti del mondo elettrico

Maggiore precisione con contagiri PIC

Raccolta di codici sorgenti

Moderatore: Foto UtentePaolino

0
voti

[21] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteTardoFreak » 1 lug 2011, 14:42

Hai detto che gli impulsi li conti con un' interrupt generata dal cambio di stato del piedino quindi non ti serve l' input capture.
Mettici un quarzo più veloce, usa il timer1 come contatore pilotato dal clock e quando ricevi l' interrupt del pin di ingresso (impulso) leggi il contenuto del timer. Quello è il periodo.
Azzeri il timer ed esci dall' interrupt.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[22] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 1 lug 2011, 14:52

Calma, calma. :-)

Hai detto che gli impulsi li conti con un' interrupt generata dal cambio di stato del piedino quindi non ti serve l' input capture.


Esatto. Io però inizialmente avevo utilizzato la funzione capture per determinare "gratis" il periodo tra due impulsi successivi. Solo che non ho capito bene come inizializzare TMR1.

Mettici un quarzo più veloce, usa il timer1 come contatore pilotato dal clock e quando ricevi l' interrupt del pin di ingresso (impulso) leggi il contenuto del timer. Quello è il periodo.


Ma non devo fare la differenza dei valori letti su TIMER1 alla ricezione di due fronti di salita successivi per avere il periodo?
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

[23] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 1 lug 2011, 15:04

Aspetta, forse inizio a capire.

Sfruttando TMR1 eviterei diciamo la rogna di tenere conto di overflow a giri bassi avendo un registro a 16bit.
Ora essendo TIMER1 a 16bit, posso fare un conteggio da 0 a 2^16-1, cioè da 0 a 65535 e il suo contenuto è suddiviso in due registri: TMR1H (8bit) e TMR1L (8bit).

---> TIMER1 = TMR1H*(2^8) + TMR1L * (2^0).

Ora, suppongo di usare un quarzo da 10Mhz (troppo??), come lo inizializzo TMR1?
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

[24] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteTardoFreak » 1 lug 2011, 15:19

C'e' scritto sul datasheet (che non ho :( ).
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[25] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 1 lug 2011, 15:32

C'e' scritto sul datasheet


Teoricamente ho capito infatti. Ci sono. Ma non riesco a metterlo in pratica. Non capisco come deve essere gestito/inizializzato TMR1 invece di TMR0. Mi blocco qui uffa.
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

[26] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteTardoFreak » 1 lug 2011, 15:33

Metti il link del datasheet che gli do uno sguardo.
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[27] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 1 lug 2011, 15:48

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

3
voti

[28] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteTardoFreak » 1 lug 2011, 17:17

Alura,
A pagina 31 troviamo il T1CON.
- T1CKPS1 e T1CKPS0 vanno servono per selezionare il prescaler per ottenere la base tempi. Dipende da che quarzo usi. Una volta che hai deciso che quarzo utilizzare lo possiamo vedere. Mettiamo che usi un quarzo da 8 MHz hai un Tcy di 0,5us. Selezionando il prescaler a 8 hai un impulso ogni 4us. Il periodo massimo che potrai misurare sarà quindi 65535*4 = 262,14 ms quindi ci stiamo dentro e non va in overflow ed abbiamo risuluzione quasi doppia di quella indicata da Foto UtenteDirtyDeeds :ok:
- T1OSCEN va a 0
- T1SYNC pure a 0
- TMR1CS va a 0 per selezionare il clock interno

poi abiliti il timer mettendo a 1 TMR1ON.

Dentro la routine di interrupt:
- Leggi il valore a 16 bit di TMR1 quello è il periodo e lo memorizzi in una variabile
- Azzeri TMR1 così lui riprende a contare da 0.
- Ritorni dall' interrupt bello paciarotto.

Se vuoi fare il figo usa il flag di overflow che sarà ad 1 solo se andrà in overflow. Questo significa che il motore è spento e che puoi segnare tranquillamente 0. O_/
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

0
voti

[29] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteEdge » 1 lug 2011, 18:07

Ottima spiegazione :-) !

Allora adesso ci ragiono e inizio a buttare giuù del codice. Poi se non disturbo e ho qualche dubbio ti posso comunque fare qualche domanda?
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

[30] Re: Maggiore precisione con contagiri PIC

Messaggioda Foto UtenteTardoFreak » 1 lug 2011, 18:08

Domandare è lecito, rispondere è cortesia (impegni permettendo ;-) )
"La follia sta nel fare sempre la stessa cosa aspettandosi risultati diversi".
"Parla soltanto quando sei sicuro che quello che dirai è più bello del silenzio".
Rispondere è cortesia, ma lasciare l'ultima parola ai cretini è arte.
Avatar utente
Foto UtenteTardoFreak
73,9k 8 12 13
-EY Legend-
-EY Legend-
 
Messaggi: 15754
Iscritto il: 16 dic 2009, 11:10
Località: Torino - 3° pianeta del Sistema Solare

PrecedenteProssimo

Torna a Firmware e programmazione

Chi c’è in linea

Visitano il forum: Nessuno e 4 ospiti