Mis primeros programas en assembler - Micros Designs
Mis primeros programas en assembler - Micros Designs
Mis primeros programas en assembler - Micros Designs
You also want an ePaper? Increase the reach of your titles
YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.
El preescalador del CCP<br />
El valor del preescalador se configura mediante los bits CCP1M3:CCP1M0. Sin embargo, al realizar un<br />
cambio <strong>en</strong> la configuración del preescalador se puede g<strong>en</strong>erar una interrupción falsa, para evitar lo anterior se<br />
deberá apagar el modulo CCP (limpiando el registro CCP1CON) previam<strong>en</strong>te al cambio de valor del<br />
preescalador.<br />
Este preescalador es indep<strong>en</strong>di<strong>en</strong>te al preescalador del Timer 1 (el cual puede usarse como ya se explicó con<br />
sus posibles divisores de 1/1, 1/2, 1/4, 18).<br />
Configuraciones:<br />
Se debe configurar el CCP1 como <strong>en</strong>trada a través del registro TRISB<br />
El Timer1 debe estar <strong>en</strong> modo temporizador o modo contador sincronizado<br />
Al cambiar el modo de captura hay que t<strong>en</strong>er inhabilitadas las interrupciones y borrar el flag para<br />
evitar interrupciones espúreas.<br />
Si el pin RB3/CCP1 es configurado como salida, se deberá t<strong>en</strong>er <strong>en</strong> cu<strong>en</strong>ta que una escritura al puerto<br />
B puede causar una condición de captura.<br />
Ejemplo:<br />
Para ejemplificar el uso del modulo CCP <strong>en</strong> modo captura vamos a realizar la medida del periodo de una onda<br />
cuadrada para así determinar su frecu<strong>en</strong>cia. La forma de trabajar va a ser la sigui<strong>en</strong>te:<br />
Configuramos CCP modo captura con cada transición de subida del pin RB3/CCP1 con Timer1 modo<br />
temporizador 1/1.<br />
Al llegar un flanco asc<strong>en</strong>d<strong>en</strong>te, reseteamos Timer1 y esperamos al sigui<strong>en</strong>te flanco asc<strong>en</strong>d<strong>en</strong>te, <strong>en</strong> el cual se<br />
guarda el valor capturado y lo <strong>en</strong>viamos a la PC para poder determinar la frecu<strong>en</strong>cia de la señal. Lo que hemos<br />
capturado es la cantidad de ciclos de reloj transcurridos <strong>en</strong> un ciclo de la señal a medir. Con este valor y el<br />
Tosc al cual trabaja el microcontrolador podemos determinar el periodo de la señal.<br />
Con un cristal de 20 MHz podemos medir desde aprox. 77Hz hasta los 500kHz, claro que a más frecu<strong>en</strong>cia<br />
más error <strong>en</strong> las mediciones. Por ejemplo, con algunos <strong>en</strong>sayos que he realizado a 1kHz se ti<strong>en</strong>e un error de +-<br />
1Hz, 10kHz +-5Hz, 100kHz +- 0.5kHz, 200kHz +- 2kHz, etc.<br />
Autor: Suky Mail: inf.pic.suky@live.com.ar Web: www.micros-designs.com.ar