Escolar Documentos
Profissional Documentos
Cultura Documentos
TEMPORIZADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Todos los temporizadores de 16 bits de la familia dsPIC son practicamente identicos en cuanto a su funcionalidad, existiendo minimas diferencias. Se pueden clasificar en tres grandes categorias:
1. Temporizadores tipo A (TIMER 1) 2. Temporizadores tipo B (TIMER 2 y TIMER 4) 3. Temporizadores tipo C (TIMER 3 y TIMER 5)
UNEXPO-Pto.Ordaz
MICROPROCESADORES
En un dispositivo dado, al menos un temporizador tipo C tiene la capacidad de disparo (trigger) en una conversin analogico/digital (A/D)
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Bit 15
Bit8
TON: Activacin del temporizador. Es un bit que gobierna el permiso o la prohibicin del funcionamiento del temporizador. En caso de poner un 0 en dicho bit, el temporizador no funcionara. Dado que es susceptible de ser modificado, el bit es leible,borrable y escribible.
TSIDL: Detencin del temporizador en modo IDLE. Cuando TSIDL=1 indica que el temporizador estara detenido cuando se encuentra en el modo de espera IDLE,y para que pueda continuar nuevamente, sera necesario poner un 0. Se trata de un bit leible, borrable y escribible. El bit 14 y los 12 9 no se encuentran implementados y son leidos como cero.
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES
Bit 7
Bit0
TGATE: Este bit se usa para habilitar el modo de disparo por acumulacin de tiempo. TGATE=1,encendido y en caso contrario, desactivado. Cuando TGATE=1, el bit TCS debera tomar el valor 0 ya que en caso contrario TGATE sera leido siempre como 0.
TCKPS<1:0>: Bits para el prescaler. TSYNC: Sincronizacin con seal externa de reloj. Si TCS=1 y TSYNC=1 entonces se realizara la sincronizacion; si TCS=0, este bit sera ignorado. TCS: Seleccin de fuente de reloj.Cuando este bit se encuentra activado, se utiliza un reloj externo aplicado a la patita TxCK. En cambio,cuando TCS=0 el reloj interno es el que se emplea.Es un bit leible, borrable y escribible.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Bit 15
Bit8
TON: Activacin del temporizador. Es el encargado de la activacin del temporizador y dependiendo del valor que posea el bit T32,se activara o detendra el temporizador de 16 bit o el de 32 bits,el bit es leible,borrable y escribible. Si T32=1 (Modo temporizador de 32 bits) 1= Activa el temporizador de 32 bits. 0= detiene el temporizador de 32bits. TSIDL: Detencin del temporizador en modo IDLE. Cuando TSIDL=1 indica que el temporizador estara detenido cuando se encuentra en el modo de espera IDLE,y para que pueda continuar nuevamente, sera necesario poner un 0. Se trata de un bit leible, borrable y escribible. El bit 14 y los bits 12 9 no se encuentran implementados y son leidos como 0.
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES
TCKPS<1:0>
T32
--------
TCS
------Bit0
TGATE (solo timer 2): Este bit se usa para habilitar el modo de disparo por acumulacin de tiempo. El bit es leible, borrable y escribible. TCKPS<1:0>: Bits para el prescaler. Son 2 bits ambos leibles,borrables,escribibles. T32 (timer 2 y 3), T45 (timer 4 y 5): Seleccin del modo temporizador de 32 bits. Este bit posibilita la opcin de elegir el modo temporizador de 32 bits si T32=1, TMRx y TMRy forman un temporizador de 32 bits. TCS: Seleccin de fuente de reloj. Cuando este bit se encuentra activado, se utiliza un reloj externo aplicado a la patita TxCK. En cambio, cuando TCS=0 el reloj interno es el que se emplea. Es un bit leible, borrable y escribible. Los bits 7, 2 y 0 no se encuentran implementados y son leidos como 0.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Bit 15
Bit8
TON: Activacin del temporizador. Es un bit que controla el permiso o la prohibicin de funcionamiento del temporizador. TSIDL: Detencin del temporizador en modo IDLE. Cuando TSIDL=1 indica que el temporizador estara detenido cuando se encuentra en el modo de espera IDLE,y para que pueda continuar nuevamente, sera necesario poner un 0. Se trata de un bit leible, borrable y escribible. El bit 14 y los bits 12 9 no se encuentran implementados y son leidos como 0.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Los temporizadores tienen la posibilidad de funcionar en 4 modos: Temporizador sincrono. Contador Sincrono. Contador Asincrono. Contaje por disparo por acumulacin del tiempo <Gated time accumulation>
El modo de funcionamiento del temporizador vendr determinado por el valor de los bits de control TCS (TxCON)<1>), TCYNC (T1CON)<2>) y TGATE(TxCON)<6>).
NOTA: hay una restriccin en el modo contador asncrono que solo permite a los temporizadores tipo A trabajar en el.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Los tres tipos de temporizadores antes comentados (tipo A, tipo B y tipo C) pueden funcionar en este modo. Para ello la seal de reloj utilizada sera la del reloj interno del sistema (FOSC/4).
La seleccin del modo temporizador sincrono se lleva a cabo cuando el bit TCS del registro de control del temporizador (TxCON) tiene valor 0.
En este modo pueden funcionar los 3 tipos de temporizadores. Para operar en este modo el bit TCS del registro de control del temporizador (TxCON) debera tener valor 1 para que seal de reloj sea externa. Para los temporizadores tipo A ademas de poner el valor de TCS=1, el bit TSYNC (TxCON)<2>) debera igualmente tomar valor 1 para realizar la sincronizacin con la seal de reloj externa. Los temporizadores trabajando en modo contador sincrono no funcionaran dentro del modo de reposo(SLEEP).
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Este modo solo es posible en temporizadores tipo A. La seal de reloj sera la misma que en el modo contador sincrono, es decir, la externa. La ventaja es que el temporizador sigue funcionando cuando el dispositivo se encuentra en reposo y que se puede generar una interrupcin que saque al dispositivo de dicho estado, es importante destacar que podran producirse resultados no deseados.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Este modo de funcionamiento permite que el registro contador del temporizador se incremente en funcin de la duracin de los pulsos aplicados en la patita TxCK y utiliza la seal de reloj interna.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
El divisor de frecuencia se borrara cada vez que se realice alguna de las siguientes acciones: Escritura en el registro (TMRx). TON = 0
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Los temporizadores de 16 bits pueden provocar una interrupcin cuando se produce la coincidencia de periodos o un flanco descendente de la seal externa, dependiendo del modo de trabajo en el que funcione. Para que los temporizadores sean capaz de provocar una interrupcin en dichas situaciones se debe habilitar el bit de control TxIE e inicilizar el valor de los bits que indican la prioridad de la interrupcin TxIP<2:0> con un valor diferente de cero.
El bit que indica que se ha producido una interrupcin es TxIF y se pone a 1 cuando se produce alguna de las siguientes condiciones: El contador (TMRx) y el registro de periodo (PRx) coinciden y el temporizador no esta funcionando en modo <<Gated time accumulation>> Se detecta un flanco descendente operando en modo <<Gated time accumulation>>
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Para formar temporizadores de 32 bits se deben concatenar un temporizador tipo B y otro tipo C. Los bits de control que se encargan de gobernar el nuevo temporizador son los asociados al temporizador tipo B, por los que los bits de registro TxCON del temporizador tipo C, no tienen ningun efecto sobre el nuevo temporizador.
Para el control de las interrupciones se utilizan los bits (TxIE, TxIF y TxIP <2:0>) del temporizador tipo C.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Escribe TMR2
UNEXPO-Pto.Ordaz
MICROPROCESADORES
Para esta aplicacin se utilizaron los temporizadores 1, 2 y 3 para la generacin de seales a diferentes frecuencias y tres diodos LED conectados al pin menos significativo de los puertos B, E y F para la visualizacin de cada temporizador. Para ello se configuraron los periodos de cada temporizador con distintos valores y se habilitaron las Interrupciones.
UNEXPO-Pto.Ordaz
MICROPROCESADORES
UNEXPO-Pto.Ordaz
MICROPROCESADORES
void timer1() org 0x1A //Funcin del Timer1 { i++; //Incrementar contador i PORTB=i; IFS0bits.T1IF=0; //Desactivar bandera de interrupcin del Timer1 }
void timer2() org 0x20 //Funcin del Timer2 { j++; //Incrementar contador j PORTE=j; IFS0bits.T2IF=0; //Desactivar bandera de interrupcin del Timer2 } void timer3() org 0x22 //Funcin del Timer3 { k++; //Incrementar contador k PORTF=k; IFS0bits.T3IF=0; //Desactivar bandera de interrupcin del Timer3 }
UNEXPO-Pto.Ordaz Prof. Rafael Surga MICROPROCESADORES
void main() { ADPCFG=0xFFFF; //Configurar puertos como E/S digitales TRISB=0; //Puerto B como salida TRISE=0; //Puerto E como salida TRISF=0; //Puerto F como salida INTCON1bits.NSTDIS=1; //Deshabilitar interrupciones anidadas INTCON2bits.ALTIVT=0; //Deshabilitar la AIVT
UNEXPO-Pto.Ordaz
MICROPROCESADORES