Newsgroup: it.hobby.elettronica.digitale
Titolo: Rilevatore di velocit

Amici è la prima volta che scrivo, mi serviva un aiuto x un mio progetto,
sono un perito elettronico, programmatore.
devo progettare un dispositivo tramite pic (16F84) per la lettura della
velocità di una ruota, da quella ruota arriva un impulso ogni giro, (il
sensore è quello di tipo x le biciclette).
1° problema
da progetto devo eseguire un ciclo 600 volte in un secondo e circa nel ciclo
ci saranno 4 -5 istruzioni (ipotizziamo 10 al max metto dei NOP), quale sarà
il clock del quarzo del PIC? Quale clock supporta max il PIC?
2° problema:
chiaramente l'impulso può arrivare in qualsiasi momento, escludo la
possibilità di aspettare l'impulso con un loop, dato che mentre lo aspetto
devo fare anche altre cose ( le 4 -5 istruzioni di prima), mi serve qualcosa
che funga come flag, insomma che se arriva un impulso il circuito rimanga
sullo stato "1 logico" fino a quando io non lo vado ad azzerare.
Quindi proprio come un FLAG.
PS prima che mi dite: "Usa il conta Km di una bici" vi rispondo la risposta
è no perchè: 1° vorrei farlo io, 2° voglio fare un interfaccia a Display 8
segmenti (si deve vedere al buio) oppure spedire i dati a qualcos'altro...
Es.PC...
Grazie

sullo stato "1 logico" fino a quando io non lo vado ad azzerare.
Perche' non usi il contatore di impulsi collegato al timer 0?
In teoria basta collegare il segnale (eventualmente scalato) al T0CKI e settare
opportunamente il timer 0 per fare si che da solo conti gli impulsi che
arrivano.
Non ho mai provato ma dovrebbe funzionare.
Ciao,
Lorenzo

 Il data sheet dice massimo 10 MHz per il 16F84.
I micro PIC si trovano fino a frequenze di 20MHz, ma per il ciclo macchina
occorre tener presente che lavorabo internamente con frequenza=Xtal/4
ovvero un quarto della frequenza di oscillazione del quarzo.
Ciauz

occorre tener presente che lavorabo internamente con frequenza=Xtal/4
Sei sicuro che TUTTI i PIC lavorino fino a 20 MHz?
Ho appena scaricato il PDF dal sito Microchip e per i 16F84 c'e' scritto massimo
10 MHz; poi io non li possiedo e non posso verificare.
Hai fatto bene a specificare la differenza tra clock esterno ed interno, cmq lui
chiedeva la frequenza dell' oscillatore mi sembra.
Ciao,
Lorenzo

 10 MHz; poi io non li possiedo e non posso verificare.
Il vecchio, ed ormai scomparso, 16F84 era limitato a solo 10 MHz ora c'č
solo il 16F84A che esiste in versione 4-10-20 MHz.
Il ciclo macchina interno č pari ad un 1/4 del clock, pertanto un processore
da 20 MHz lavora a 5 MIPS.
Bye

 Lorenzo

 Appena arriva un impulso sul Timer0 cosa succede?
Il modo migliore per fare ciò che vuoi non è usare il Timer0 come contatore,
se non altro perchè il 16F84 ha un solo timer e ti serve per fare le
temporizzazioni (assolutamente indispensabili per usare un display LCD), ma
usare l'interrupt on change applicabile alla porta B.
Detto in parole povere ogni volta che uno dei 4 pin alti (da RB4 a RB7), se
configurati come input, cambia di stato (sia da 0 a 1 che viceversa) viene
generato un interrupt. In questo modo il tuo PIC può fare quello che
preferisci tra un impulso di conteggio e l'altro.
P.S.
Per motivi di interferenze è consigliabile disaccoppiare galvanicamente
(foto accoppiatore) il sensore posto sulla ruota delle bicicletta dal pin
d'ingresso sul PIC.
Bye

 temporizzazioni (assolutamente indispensabili per usare un display LCD),
ma
Uhm... mi pareva di avere capito che volesse usare un 7 segmenti (8 col
decimale), di quelli a led insomma.
Quindi a meno che non lo voglia usare per altre temporizzazioni (vedi il
ciclo di cui parlava prima) penso che possa andare.
--
...:::Zmaster:::...
DSL powered
zmast[ANTISPAMSYSTEM]@
freemail.it
www.zmasterworld.8m.com
Collaboratore del Media Player Project

 > se non altro perchè il 16F84 ha un solo timer e ti serve per fare le


 Sei sicuro che TUTTI i PIC lavorino fino a 20 MHz?
No, mi sono espresso male o sono satto frainteso:
i PIC si trovano con frequenze di lavoro assicurate dal costruttore fino a
20MHz, ma solo alcuni PIC nella stessa femiglia vi sono dispositivi da 4. 8,
10 e 20 MHz
Ciauz


 Ciao
Questo dipende da cosa vuoi ottenere dal conteggio di questi impulsi.
Mi spiego meglio, se intendi visualizzare la frequenza su un LCD
(intelligente) non credo che sia un problema in quanto puoi inserire la
routine di visualizzazione in coda al ciclo della durata unitaria riferita
alla base tempi, che solitamente è di 0.1s o 1s.
A seconda della compattezza di come quest'ultima viene realizzata, evitando
istruzioni di salto condizionato, riesci a leggere direttamente (senza l'uso
del prescaler) una frequenza che è proprio intorno ai 500-600kHz per un
clock macchina di 5MHz (20MHz ext).
Se si hanno esigenze più spinte valuta la possibilità di usare dei micro
SceniX PIC compatibili a livello di codice ed architettura ma in grado di
lavorare con clock fino a 75MHz reali non diviso internamente con le
conseguenti performance.
Verifica su 
http://www.ubicom.com/products/sx/sx.html
Ciauz

solo il 16F84A che esiste in versione 4-10-20 MHz.
Grazie per aver fatto chiarezza. :-)
Ciao,
Lorenzo

Appena arriva un impulso sul Timer0 cosa succede?
Prima di tutto se non hai ancora scaricato il data sheet del pic fallo:
http://www.microchip.com/download/lit/pline/picmicro/families/16f8x/35007b.pdf
Come seconda cosa considera che non e' l'unico metodo, come suggerisce
Afterburner potrebbe essere piu' conveniente utilizzare l'interrupt sulla porta
B; dipende dal caso specifico, se preferisci utilizzare il timer oppure
l'interrupt. (piu' che altro se hai bisogno di una di queste risorse per altri
motivi sarai costretto ad utilizzare l'altra per il conteggio)
Sul PDF trovi informazioni sull'utilizzo del timer0 come contatore a pagina 21:
colleghi il tuo segnale al piedino RA4/T0CKI, setti opportunamente il TRISA e
OPTION_REG, azzeri TMR0, aspetti un po' di tempo (ad esempio un ciclo completo
del codice, anche se in effetti avere un altro timer sarebbe molto comodo) e
trovi in TMR0 il numero di impulsi che ci sono stati in questo periodo.
Se invece vuoi utilizzare l'interrupt leggi le pagine 11 e 19 del manuale. :-)
Ciao,
Lorenzo

Ci sono anche PIC a 33 MHz.
Ciao
Pow
--
----------------------------------------------------
Ama il tuo mestiere con passione
E' il significato della tua vita
Auguste Rodin (1840-1917)
"Lorenzo Dal Bello" <DalB...@Libero.it> ha scritto nel messaggio
news:gdgbav008su8ro7s6...@4ax.com...


 wrote in message
news:baCpa.61502$iy5.1...@twister2.libero.it...


 me ne rimangono 5 per calcolare la frequenza e comandare l'LCD...
Provero'.
no, perchè l'LCD lo comandi solo alla fine del conteggio (es. dopo 1 secondo
oppure 1/10 di secondo) per cui durante il conteggio stesso non fai
praticamente nulla, al max incrementi una variabile.
io personalmente farei così (disponendo di due timer): uso un timer come
contatore per contare appunto gli impulsi - e quindi il numero degli stessi
sarà contenuto nel suo registro, meglio se a 16 bit - e l'altro timer per
generare interrupt ogni tot di tempo, durante il quale leggo il valore del
registro contatore, scrivo il numero nell'LCD, azzero il contatore e
ripristino l'interrupt. codice leggerissimo e tutto sommato abbastanza
preciso.
ciao!
Marco