Pagina 1 di 3
Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 10:06
da Davide90
Salve a tutti, sono alle prime armi con la programmazione dei PIC, in particolare sto usando un vecchio PIC16F84A(poi userò un 16F628) , ho la necessità di determinare per quanto tempo un pin rimane a livello alto, ho visto dal datasheet che il PIC ha un TMR0 , dovrei usare questa periferica? Avete qualche dritta?
Programmo in C con Mplab e compilatore xc18.
Grazue a tutti
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 10:16
da simo85
Davide90 ha scritto:ho la necessità di determinare per quanto tempo un pin rimane a livello alto
Spiega meglio cosa devi fare, perché un pin può rimanere a stato logico alto per tutta la vita del micro-controllore.
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 10:21
da Davide90
devo poter intercettare il segnale proveniente da una ricevente da un' auto radiocomandata
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 10:22
da simo85
Usa un oscilloscopio.
Una soluzione spartana ad occhio nudo, un LED.
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 10:25
da Davide90
forse mi sono spiegato male, ho bisogno di conoscere il tempo per cui un pin del PIC rimane alto,e quindi memorizzarlo in una variabile.
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 10:29
da simo85
Davide90 ha scritto:forse mi sono spiegato male
Decisamente. Se andiamo avanti cosi..
Davide90 ha scritto:ho bisogno di conoscere il tempo per cui un pin del PIC rimane alto,e quindi memorizzarlo in una variabile
Allora usa le interruzioni. Devi contare le interruzioni. Dipendendo dalla lunghezza del registro del timer, e dalle interruzioni, puoi successivamente conoscere la durata dell' impulso.
Sta a te decidere se vuoi salvare questo dato in memoria (volatile o non volatile) o vuoi inviarlo tramite bus seriale ad un computer.
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 14:01
da Davide90
Intendi le interruzioni generate dal timer0? Non rieco proprio a capire come legare il timer0 alla durata del livello alto del pin. Da quello che sto leggendo, il timer0 genera un'interruzione quando il timer arriva a 0.
Vi è anche la possibilità di far generare un'interruzione quando uno specifico piedino si trova o al livello alto o basso. Devo seguire questa strada? Come ricavo poi l'intervallo di tempo tra un interruzione e l'altra?
Lo trovo un argomento un po' complicato, hai qualcosa da farmi leggere?
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 14:17
da EcoTan
Premetto che non conosco il pic16, comunque misurare la durata di un impulso digitale è uno dei problemi più comuni e molti microcontrollori sono dotati di ingressi appositi che si chiamano Input Capture.
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 15:13
da WALTERmwp
Per questo ...
Davide90 ha scritto:Lo trovo un argomento un po' complicato, hai qualcosa da farmi leggere?
... c'è il datasheet del microcontrollore in causa ( ... è in inglese).
Non so se
EcoTan è riuscito ad interpretare ciò che tu hai scritto, ovvero la tua necessità, però, non sei stato "molto chiaro".
Mi permetto di darti un semplice suggerimento: prova a spiegare con ordine e semplicità l'oggetto con il quale hai a che fare e quello che vorresti stabilire.
Saluti
Re: Misurare intervallo stato alto pin

Inviato:
14 ago 2014, 15:30
da Davide90
Allora, devo collegare ad un piedino del PIC un segnale che esce da una ricevente di un' automobilina radiocomandata.
Mi serve conoscere per quanti millisecondi questo piedino rimane alto.