Está en la página 1de 41

Temporizadores de la Familia DSPIC33E/PIC24E

TEMPORIZADORES

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


INTRODUCCIN
El dsPIC33EP256MU806 cuenta con nueve temporizadores/contadores de 16 bits, de los
cuales algunos poseen la caracterstica de poder combinarse con el objetivo de formar
un temporizador/contador de 32 bits , todos los temporizadores de 16 bits tienen el
mismo circuito funcional, y se clasifican en tres tipos:
Timer Tipo A (Timer 1)
Timer Tipo B (Timer 2, Timer 4, Timer 6 y Timer 8)
Timer Tipo C (Timer 3, Timer 5, Timer 7 y Timer 9)
Los timers de Tipo B y C se pueden combinar para formar un temporizador de 32 bits.
Cada mdulo temporizador es un temporizador / contador de 16-bit que poseen los
siguiente registros de lectura / escritura:
TMRx: Registro contador de 16 bits del temporizador.
PRx: Registro de periodo de 16 bits del temporizador.
TxCON: Registro de control de 16 bits del temporizador.
Cada mdulo de temporizador tambin tiene estos bits asociados para control de
interrupcin:
Bit de habilitacin de Interrupcin del temporizador (TxIE)
Bit de solicitud de Interrupcin del temporizador (TxIF)
Bits de control de prioridad de interrupcin del temporizador (TxIP <2:0>)
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


MODOS DE FUNCIONAMIENTO
El mdulo temporizador puede funcionar en uno de los siguientes modos:
El modo Temporizador
El modo Disparo acumulado
El modo Contador Sncrono
El modo Contador Asncrono (Solo timer tipo A)
En los modos Temporizador y Disparo Acumulado, el reloj de entrada se deriva del
reloj interno (FCY). En los modos Contador Sncrono y Asncrono, el reloj de entrada
se deriva de la entrada de reloj externa en el pin TxCK.
Los modos de temporizador se determinan por los siguientes bits:
TCS (TxCON <1>): Bit de control de fuente de reloj del temporizador
TSYNC (TxCON <2>): Bit de control de sincronizacin del temporizador (Solo tipo A)
TGATE (TxCON <6>): Bit de control de habilitacin de disparo acumulado
Nota: Bajo ciertas condiciones cualquier timer puede funcionar como entrada de
interrupcin externa

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


CONFIGURACION DE MODOS DE FUNCIONAMIENTO DEL TEMPORIZADOR

MODO

TCS

TGATE (2)

TSYNC(1)

TEMPORIZADOR
DISPARO ACUMULADO
CONTADOR SINCRONO
CONTADOR ASINCRONO (3)

0
0
1
1

0
1
X
X

X
X
1
0

1.- TSYNC SOLO ESTA DISPONIBLE EN LOS TIMER TIPO A


2.- TGATE NO FUNCIONA EN LOS MODOS CONTADOR
3.- MODO CONTADOR ASINCRONO SOLO FUNCIONA EN TIMER TIPO A

Nota: El temporizador puede ser utilizado por otros perifricos, entre


ellos:
.- Mdulo de Captura.
.- Mdulo de Comparacin.
.- Reloj de Tiempo Real.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTROS DE CONTROL DE LOS TEMPORIZADORES
TxCON: Tipo de registro de control del temporizador TIPO A (x = 1)
TxCON: Tipo de registro de control del temporizador TIPO B (x = 2, 4, 6, 8)
TxCON: Tipo de registro de control del temporizador TIPO C (x = 3, 5, 7, 9)
Adems de los registros anteriores, cada temporizador tiene los siguientes registros
de 16 bits asociado con l.
PRx: Registro de periodo del temporizador (x = 1 a 9)
TMRx: Registro de conteo del temporizador (x = 1 a 9)
TMRxHLD: Registros de retencin del temporizador (x = 3, 5, 7 y 9)
Este registro se utiliza en el modo de temporizador de 32 bits para las operaciones de
lectura / escritura.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Modo Temporizador
En el modo temporizador, el reloj de entrada al temporizador se deriva del reloj
interno (FCY) dividido por un prescaler programable. Cuando el temporizador est
activado, se incrementa en uno en cada flanco ascendente del reloj de entrada y
genera una interrupcin al tener el mismo valor del registro de perodo.

Para configurar el modo de temporizador:


1. Borre el bit de control TCS (TxCON <11>) para seleccionar la fuente de reloj
interno.
2. Borre el bit de control TGATE (TxCON <6>) para desactivar el modo de operacin
de disparo acumulado.
Configurar el bit TSYNC (TxCON <2>) no tiene ningn efecto porque el reloj interno
siempre esta sincronizado.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Modo Contador Sncrono
En el modo de contador sncrono, el reloj de entrada al temporizador se deriva de
la entrada de reloj externa dividido por un pre-escalador programable. En este
modo, la entrada de reloj externo se sincroniza con el reloj interno del dispositivo.
Cuando el temporizador est activado, se incrementa en uno en cada flanco
ascendente del reloj de entrada, y genera una interrupcin al igualarse con el
registro de perodo.
Para configurar el modo de contador sncrono:
Setear el bit de control TSYNC (TxCON <2>) para habilitar la sincronizacin del
reloj interno con el externo. ( Solo para timer tipo A)
Para un timer tipo B o C, la entrada de reloj externo siempre est sincronizada.
Setear el bit de control TCS (TxCON <1>) para seleccionar la fuente de reloj
externa.
Un temporizador funcionando en modo contador de reloj externa sincronizada no
funciona en el modo de SLEEP, debido a que el circuito de sincronizacin se apaga
durante este modo.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Modo Contador Asncrono (Solo temporizador tipo A)
El temporizador tipo A puede funcionar en modo contador asncrono, el reloj de entrada
del temporizador se deriva de la entrada de reloj externa (TxCK) dividido por un
prescaler programable. En este modo, la entrada de reloj externa no est sincronizada
con el reloj del dispositivo interno. Cuando se activa el temporizador el contador se
incrementa en uno en cada cada flanco ascendente del reloj de entrada y genera una
interrupcin al igualarse con el registro de perodo.
Para configurar el modo de contador asncrono:
1. Borre el bit de control TSYNC (TxCON <2>) para desactivar la sincronizacin del reloj.
2. Setear el bit de control TCS (TxCON <11>) para seleccionar la fuente de reloj externa.
En el modo contador asncrono:
El temporizador puede ser configurado para trabajar en bajo consumo de energa con
un cristal oscilador de 32 kHz externo en modo oscilador secundario seteando el bit
(LPOSCEN) en el registro de control de oscilador (OSCCON <1>).
El temporizador se puede operar en el modo de SLEEP si la entrada de reloj externa o
el oscilador secundario est activada. Se puede generar una interrupcin (si est
activado) cuando el registro de conteo es igual al registro de perodo y podria despertar
el procesador del modo SLEEP.
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Temporizador Tipo A
El Timer1 es un temporizador tipo A. El tipo A tiene las siguientes caractersticas
nicas con respecto a otros tipos de temporizadores:
Funcionamiento como oscilador de baja potencia con un cristal de 32 kHz
disponibles en el dispositivo
Funcionamiento en modo contador asncrono con fuente de reloj externa
Opcionalmente, la entrada de reloj externo (TxCK) se puede sincronizar con el
reloj interno del dispositivo y la sincronizacin de reloj se lleva a cabo despus de
TxCK se divide por el pre-escalador.
Las caractersticas nicas de un tipo A permiten que sea utilizado para
aplicaciones de reloj de tiempo real (RTCC).

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Diagrama de bloques del temporizador Tipo A

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E

Temporizador Tipo B
Los Temporizadores 2, 4, 6 y 8 son de tipo B. El temporizador de tipo B
tiene la las siguientes caractersticas especficas:
Puede ser concatenado con un temporizador Tipo C para formar un
temporizador de 32 bits
La entrada de reloj externo (TxCK) siempre est sincronizado con el
reloj interno del dispositivo y la sincronizacin de reloj se lleva a cabo
despus que el TxCK se divide por el pre-escalador.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Diagrama de bloques del temporizador Tipo B

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Temporizador Tipo C
Los Temporiadores 3, 5, 7 y 9, son temporizadores de tipo C. El
temporizador Tipo C tiene la las siguientes caractersticas especficas:
Se puede concatenar con un temporizador de tipo B para formar un
temporizador de 32 bits
Al menos un temporizador de Tipo C tiene la capacidad de iniciar una
conversin analgica-digital (A / D)
La entrada de reloj externo (TxCK) siempre est sincronizado con el reloj
interno del dispositivo y la sincronizacin de los relojes se realiza utilizando
TxCK despus de lo cual este reloj sincronizado es dividido por el preescalador

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Diagrama de bloques del temporizador Tipo C

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


CONFIGURACIN DEL TEMPORIZADOR DE 32 BITS
Un mdulo de temporizador de 32 bits puede ser formado mediante la combinacin
de temporizadores de tipo B y tipo C de 16 bits. Para funcionamiento en modo 32 bits,
se debe setear el bit de control T32 en el Registro de Control Tipo B (TxCON <3>).
El temporizador de Tipo C tiene la palabra ms significativa (MSW) y el temporizador
de tipo B tiene la menos significativa (LSW) para la operacin de 32 bits.
Cuando se configura para operacin de 32 bits, slo los bits del registro de control de
los temporizadores tipo B son necesarios para la configuracin y control. Con la
excepcin del bit TSIDL, todo los bits del registro de control del temporizador tipo C se
ignoran.
Para el control de interrupcin, el temporizador de 32 bits combinado se utilizan los
bits de solicitud, habilitacin y prioridad de control del temporizador tipo C. Los bits de
control de interrupcin del temporizador tipo B se ignoran durante la operacin del
temporizador de 32 bits.
Esta funcin puede trabajar en los modos: Disparo Acumulado, Temporizador y
Contador Sncrono.
Los emparejamientos son: Timer 2 con Timer 3, Timer 4 con Timer 5, Timer 6 con
Timer 7 y Timer 8 con Timer 9
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Para sincronizar la lectura / escritura de 32-bit entre el LSW ( 16 bits menos
significativos) y MSW ( 16 bits mas significativos) del temporizador de 32 bits, se
tiene una lgica de control adicional y registros de mantenimiento. Cada
temporizador Tipo C tiene un registro llamado TMRyHLD que se utiliza al leer o
escribir el par de registros del temporizador. Los registros TMRyHLD se utilizan slo
cuando sus respectivos temporizadores estn configurados para operacin de 32
bits.
Suponiendo que TMR3: TMR2 forman un par temporizador de 32 bits, el software
debe leer primero el LSW del valor del temporizador del registro TMR2. La lectura
del LSW transfiere automticamente elcontenido de TMR3 en el registro TMR3HLD.
El software puede leer el MSW en el registro TMR3HLD en cualquier momento que
se desee.
Para escribir un valor en el par de registros TMR3: TMR2, la aplicacin de usuario
debe escribir primero el valor MSW al registro TMR3HLD. Cuando el LSW del valor
de temporizacin se escribe en TMR2, el contenido de TMR3HLD se transfiere al
registro TMR3.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Diagrama de bloques del temporizador 32 bits

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Lectura/Escritura del temporizador 32 bits

// Leyendo temporizador de 32 bits


lsw = TMR2; //Lee LSW del registro de conteo del temporizador tipo B
msw = TMR3HLD; //Lee MSW del registro holding del temporizador tipo C
// Escribiendo temporizador de 32 bits
TMR3HLD = msw; //Escribe MSW en el registro holding del temporizador tipo C
TMR2 = lsw; //Escribe LSW en el registro de conteo del temporizador tipo B

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Modo de Disparo Acumulado
Cuando el mdulo de temporizacin funciona con el reloj interno (TCS = 0), el modo
de disparo acumulado puede ser utilizado para medir la duracin de una seal de
puerta externa. En este modo el temporizador comienza a incrementarse en uno al
haber un flanco de subida del reloj de entrada y continua contando siempre y
cuando la seal de puerta externa en el pin TxCK se mantenga en alto. La
interrupcin del temporizador se genera en el flanco de bajada del pin TxCK y se
detiene el conteo.
Para configurar el modo de disparo acumulado:
1. Setear el bit de control TGATE (TxCON <6>) para permitir el funcionamiento del
disparo acumulado
2. Borre el bit de control TCS (TxCON <11>) para seleccionar la fuente de reloj
interno.
EL bit TSYNC (TxCON <2>) no tiene ningn efecto porque el reloj interno siempre est
sincronizado.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E

Operacin de Modo de Disparo Acumulado

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Disparo de eventos especiales para conversin A/D
En cada variante del dispositivo, un temporizador Tipo C puede generar una seal
de disparo especial de conversin A/D en un perodo definido, tanto en el modo de
16 bits como en el de 32 bits. El mdulo temporizador proporciona un inicio de
conversin a la lgica de muestreo A/D.
Si T32 = 0, cuando se produce una coincidencia entre el registro de temporizador
de 16 bits (TMRx) y el respectivo perodo de registro de 16-bit (PRx), una seal de
disparo Evento Especial A/D se genera
Si T32 = 1, cuando se produce una coincidencia entre el temporizador de 32 bits
(TMRx: TMRy) y el respectivo perodo de registro combinado de 32 bits (PRx: PRY),
la seal de disparo Evento Especial A/D es generada.
La seal de disparo de eventos especiales siempre se genera por el temporizador. La
fuente de disparo debe ser seleccionado en el registro de control del convertidor
A/D.
En modo 32 bits solo los pares 2/3 y 4/5 pueden generar disparo de eventos
especiales.
En modo 16 bits solo los timers 3 y 5 pueden generar disparo de eventos especiales.
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO A (TxCON) x=1
Byte superior
TON

----

TSIDL

----

----

----

----

----

Bit 15

Bit 8

TON: Bit de encendido del TIMER.


1 = Inicia el temporizador.
0 = Detiene el temporizador.
Bit <14>: No implementado, ledo como 0.

TSIDL: Bit de para de modo IDLE.

1 = Temporizador esta detenido mientras se encuentra en modo IDLE.


0 = Temporizador continua mientras se encuentra en modo IDLE.
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO A (TxCON) x=1
Byte inferior
---

TGATE

TCKPS<1:0>

----

TSYNC

TCS

Bit 7

Bit 0

Bit <12:7>: No implementado, ledo como 0.

TGATE: Bit de Habilitacin del modo de disparo acumulado.


Mientras TCS = 1 :
Este bit ser ignorado.
Mientras TCS = 0 :
1 = Modo de disparo acumulado es habilitado.

0 = Modo de disparo acumulado es deshabilitado.

UNEXPO-Pto.Ordaz

----

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO A (TxCON) x=1
Byte inferior
---

TGATE

TCKPS<1:0>

----

TSYNC

TCS

Bit 7

---Bit 0

TCKPS<1:0>: Bit de seleccin para el Prescalador del TIMER.


11 = 1 : 256 Valor de Prescalador.
10 = 1 : 64 Valor de Prescalador.
01 = 1 : 16 Valor de Prescalador.
00 = 1 : 1 Valor de Prescalador.
TSYNC: Bit de Seleccin de sincronizacin de fuente de reloj externo ( Siempre
que TCS=1).
1 = Sincronizar entrada de reloj externo ( Modo contador sncrono).
0 = No sincronizar entrada de reloj externo ( Modo contador asncrono).
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO A (TxCON) x=1
Byte inferior
---

TGATE

TCKPS<1:0>

----

TSYNC

TCS

Bit 7

Bit 0

TCS: Bit de seleccin de fuente de reloj.


1 = Reloj externo en el PIN TxCK en el flanco ascendente o SOSC ( modo
contador)
0 = Reloj interno por FOSC/2 ( modo temporizador)
Bit <0>: No implementado, ledo como 0.

UNEXPO-Pto.Ordaz

----

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO B (TxCON) x=2,4,6,8.
Byte superior
TON

----

TSIDL

----

----

----

----

----

Bit 15

Bit 8

TON: Bit de encendido del TIMER.


Cuando T32 = 1 (En Modo de Timer de 32 Bit) :
1 = Habilita el TMRy de 32 Bit;
0 = Deshabilita el TMRy de 32 Bit;
Cuando T32 = 0 :
1 = Habilita el Timer de 16 Bit.
0 = Deshabilita el Timer de 16 Bit.
Bit <14>: No implementado, ledo como 0.
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO B (TxCON) x=2,4,6,8.
Byte superior
TON

----

TSIDL

----

----

----

----

----

Bit 15

Bit 8

TSIDL: Bit de para de modo IDLE.


1 = Temporizador esta detenido mientras se encuentra en modo IDLE.
0 = Temporizador continua mientras se encuentra en modo IDLE.
Bit <12:8>: No implementado, ledo como 0.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO B (TxCON) x=2,4,6,8.
Byte inferior
---

TGATE

TCKPS<1:0>

T32

----

TCS

----

Bit 7

Bit 0

Bit <7>: No implementado, ledo como 0.

TGATE: Bit de Habilitacin del modo de disparo acumulado.


Mientras TCS = 1 :
Este bit ser ignorado.
Mientras TCS = 0 :
1 = Modo de disparo acumulado habilitado.

0 = Modo de disparo acumulado deshabilitado.

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO B (TxCON) x=2,4,6,8.
Byte inferior
---

TGATE

TCKPS<1:0>

T32

----

TCS

----

Bit 7

Bit 0

TCKPS<1:0>: Bit de seleccin para el Prescalador del TIMER.


11 = 1 : 256 Valor de Prescalador.
10 = 1 : 64 Valor de Prescalador.
01 = 1 : 16 Valor de Prescalador.
00 = 1 : 1 Valor de Prescalador.

T32: Bit de Seleccin del modo de temporizador de 32 Bits.

1 = TMRx y TMRy forman un temporizador de 32 Bits


0 = TMRx y TMRy forman por separado dos temporizadores de 16 Bits
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO B (TxCON) x=2,4,6,8.
Byte inferior
---

TGATE

TCKPS<1:0>

T32

----

TCS

----

Bit 7

Bit 0

Bit <2>: No implementado, ledo como 0.

TCS: Bit de seleccin de fuente de reloj.


1 = Reloj externo en el PIN TxCK en el flanco ascendente o SOSC ( modo
contador)
0 = Reloj interno por FOSC/2 ( modo temporizador)
Bit <0>: No implementado, ledo como 0.

NOTA: Los Temporizadores TMRy son los Tipo C (y = 3, 5, 7 y 9)


UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO C (TxCON) x=3,5,7,9.
Byte superior
TON

----

TSIDL

----

----

----

----

----

Bit 15

Bit 8

TON: Bit de encendido del TIMER.


1 = Inicia el temporizador de 16 Bits
0 = Detiene el temporizador de 16 Bits.
Bit <14>: No implementado, ledo como 0.

TSIDL: Bit de para de modo IDLE.

1 = Temporizador esta detenido mientras se encuentra en modo IDLE.


0 = Temporizador continua mientras se encuentra en modo IDLE.
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO C (TxCON) x=3,5,7,9.
Byte inferior
---

TGATE

TCKPS<1:0>

----

-----

TCS

Bit 7

Bit 0

Bit <12:7>: No implementado, ledo como 0.

TGATE: Bit de Habilitacin del modo de disparo acumulado.


Mientras TCS = 1 :
Este bit ser ignorado.
Mientras TCS = 0 :
1 = Modo de disparo acumulado habilitado.
0 = Modo de disparo acumulado deshabilitado.

UNEXPO-Pto.Ordaz

----

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO C (TxCON) x=3,5,7,9.
Byte inferior
---

TGATE

TCKPS<1:0>

----

-----

TCS

Bit 7

Bit 0

TCKPS<1:0>: Bit de seleccin para el Prescalador del TIMER.


11 = 1 : 256 Valor de Prescalador.
10 = 1 : 64 Valor de Prescalador.
01 = 1 : 16 Valor de Prescalador.
00 = 1 : 1 Valor de Prescalador
Bit <3,2>: No implementados, ledo como 0.

UNEXPO-Pto.Ordaz

----

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


REGISTRO DE CONTROL DE TIMER TIPO C (TxCON) x=3,5,7,9.
Byte inferior
---

TGATE

TCKPS<1:0>

----

TSYNC

TCS

Bit 7

Bit 0

TCS: Bit de seleccin de fuente de reloj.


1 = Reloj externo en el PIN TxCK en el flanco ascendente o SOSC ( modo
contador)
0 = Reloj interno por FOSC/2 ( modo temporizador)

UNEXPO-Pto.Ordaz

----

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Aplicacin para temporizadores y contadores

Se desea realizar una aplicacin mediante el dsPIC33EP256MU806, que permita


visualizar dos seales cuadradas con distintos periodos a la vez de visualizar en una
interfaz grafica la actualizacin de una hora previamente configurada.
Para esta aplicacin se emplearon el temporizador 1 para llevar el control de la hora
mostrada en la interfaz grafica, a su vez se utilizaron los temporizadores 2 y 3 para
generar seales a diferentes frecuencias, cada temporizador fue utilizado como un timer
de 16 bits utilizando como fuente de reloj el oscilador externo principal (4Mhz).
Para llevar el control de las seales y la visualizacin de la hora se programaron las
interrupciones correspondientes a cada temporizador, debido que los timer 3 y 2
manejan las seales, en sus correspondientes interrupciones solo se invirti el valor
lgico de la salida asignada a cada seal, mientras que en la interrupcin del timer 1 se
realizo una verificacin para la actualizacin y posterior visualizacin de la hora.
El control de las interrupciones por el temporizador del dsPIC33EP256MU806 es
manejado como se muestra en la diapositiva siguiente.
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


sbit GLCD_D7 at RE1_bit;
sbit GLCD_D6 at RE0_bit;
sbit GLCD_D5 at RF1_bit;
sbit GLCD_D4 at RF0_bit;
sbit GLCD_D3 at RD7_bit;
sbit GLCD_D2 at RD6_bit;
sbit GLCD_D1 at RD5_bit;
sbit GLCD_D0 at RD4_bit;
sbit GLCD_D7_Direction at TRISE1_bit;
sbit GLCD_D6_Direction at TRISE0_bit;
sbit GLCD_D5_Direction at TRISF1_bit;
sbit GLCD_D4_Direction at TRISF0_bit;
sbit GLCD_D3_Direction at TRISD7_bit;
sbit GLCD_D2_Direction at TRISD6_bit;
sbit GLCD_D1_Direction at TRISD5_bit;
sbit GLCD_D0_Direction at TRISD4_bit;
sbit GLCD_CS1 at LATE3_bit;
sbit GLCD_CS2 at LATE2_bit;
sbit GLCD_RS at LATD1_bit;
sbit GLCD_RW at LATD2_bit;
sbit GLCD_EN at LATD3_bit;
sbit GLCD_RST at LATE4_bit;
sbit GLCD_CS1_Direction at TRISE3_bit;
sbit GLCD_CS2_Direction at TRISE2_bit;
sbit GLCD_RS_Direction at TRISD1_bit;
sbit GLCD_RW_Direction at TRISD2_bit;
sbit GLCD_EN_Direction at TRISD3_bit;
sbit GLCD_RST_Direction at TRISE4_bit;

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Unsigned short unidad_segundo=0, decena_segundo=0, unidad_minuto=0,
decena_minuto=0, unidad_hora=0, decena_hora=0;
char hora[8];
void t1() org 0x1A
{ unidad_segundo++;
if(unidad_segundo==10)
{ unidad_segundo=0;
decena_segundo++;
if(decena_segundo==6)
{ decena_segundo=0;
unidad_minuto++;
if(unidad_minuto==10)
{ unidad_minuto=0;
decena_minuto++;
if(decena_minuto==6)
{ decena_minuto=0;
unidad_hora++;
if(unidad_hora==10 && decena_hora==0)
{ unidad_hora=0;
decena_hora++;
}
else if(unidad_hora==1 && decena_hora==3)
{ unidad_hora=0;
decena_hora=0;
}
}
}
}
}

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


hora[0]=decena_hora+'0';
hora[1]=unidad_hora+'0';
hora[2]= ':';
hora[3]=decena_minuto+'0';
hora[4]=unidad_minuto+'0';
hora[5]= ':';
hora[6]=decena_segundo+'0';
hora[7]=unidad_segundo+'0';
hora[8]= '\0';
Glcd_Write_Text(hora, 30, 3, 1);
IFS0bits.T1IF=0;
}
void t2() org 0x22
{ PORTBbits.RB15=~PORTBbits.RB15;
IFS0bits.T2IF=0;
}
void t3() org 0x24
{ PORTFbits.RF4=~PORTFbits.RF4;
IFS0bits.T3IF=0;
}
void main()
{ ANSELC=0;
ANSELD=0;
ANSELE=0;
ANSELB=0;
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


CORCONbits.IPL3=0; //la interrupcion de la CPU es de nivel 7 o menor
SRbits.IPL=0; //interrupcion de la CPU es de nivel 0
INTCON1bits.NSTDIS=0; //interrupcion anidadas activada
INTCON2bits.GIE=1; //interrupciones habilitadas
TRISBbits.TRISB15=0;
PORTBbits.RB15=0;
TRISFbits.TRISF4=0;
PORTFbits.RF4=0;
TMR1=0;
T1CON=0X8020;
Prescaler 64:1, modo timer
PR1=31250; //1000ms
TMR2=0;
T2CON =0X8010;
Prescaler 16:1, modo timer
PR2=45000; //360ms
TMR3=0;
T3CON=0X8010;
Prescaler 16:1 , modo timer
PR3=22500; //180ms
IEC0bits.T1IE=1;
IEC0bits.T2IE=1;
IEC0bits.T3IE=1;
IFS0bits.T1IF=0;
IFS0bits.T2IF=0;
IFS0bits.T3IF=0;
IPC0bits.T1IP=3;
IPC1bits.T2IP=4;
IPC2bits.T3IP=5;
UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

Temporizadores de la Familia DSPIC33E/PIC24E


Glcd_Init();
Glcd_Set_Font(Character8x7, 8, 7, 32);
Glcd_Fill(0);
while(1);
}

UNEXPO-Pto.Ordaz

Prof. Rafael Surga

MICROPROCESADORES

También podría gustarte