Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Por otra parte cada temporizador tiene asociado a su vez una serie de bits
para el control de interrupciones:
• TxIE: Bit de control para permiso de interrupción del Timer.
• TxIF: Bit de estado del señalizador de desbordamiento.
• TxIP <2:0>: Bits para determinar la prioridad de la interrupción
MSc‐ Jacob Astocondor Villar ‐2018V 1
TIPO A (TIMER 1)
TIPOS DE TEMPORIZADORES
Todos los temporizadores de 16 bits de la familia dsPIC Algunas características especiales de este tipo de temporizadores son las
son practicamente identicos en cuanto a su funcionalidad, siguientes:
existiendo minimas diferencias. Se pueden clasificar en Pueden ser utilizados en modo oscilador LP (Low Power) u oscilador
tres grandes categorias: secundario de 32 Khz para aplicaciones de reloj de tiempo real (RTC).
Pueden funcionar de forma asíncrona a través de una señal de reloj
externa.
1. Temporizadores tipo A (TIMER 1) TIPO B (TIMER 2 – TIMER 4)
2. Temporizadores tipo B (TIMER 2 y TIMER 4) Sus características especificas son las siguientes:
3. Temporizadores tipo C (TIMER 3 y TIMER 5 Los temporizadores tipo B pueden concatenarse con los tipo C para
formar temporizadores de 32 bits. El registro TxCON del temporizador
tipo B contiene el bit de control T32, que cuando tiene valor 1 permitirá
el funcionamiento del temporizador de 32 bits.
La sincronización de reloj se realiza después de atravesar la lógica del
divisor de frecuencia (Prescaler).
La estructura interna es similar a la del temporizador tipo A pero no cuenta
con la lógica que posibilitaba la sincronización con el reloj externo ni con la
opción del oscilador LP.
19/05/2018
Pueden concatenarse con los tipo B para formar pin Reloj Ton Preescaler
U1:A
temporizadores de 32 bits. pin
. 1
3
TCKPS1 TCKPS0
OSC2 2 TMR1
TCS 7409
Entrada
En un dispositivo dado, al menos un temporizador tipo C oin
Pulsos
tiene la capacidad de disparo (trigger) en una conversión T1CK Externos
analogico/digital (A/D
ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO A ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO B
(TIMER 1) (TIMER 2 y TIMER 4)
19/05/2018
ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO B ESTRUCTURA INTERNA DEL TEMPORIZADOR TIPO C
(TIMER 2 y TIMER 4) (TIMER 3 y TIMER5)
REGISTROS DE CONTROL
Registro base tipo A (TxCON)
Byte superior
GATE (solo timer 2): Este bit se usa para habilitar el modo de
TON: Activación del temporizador. Es el encargado de la activación del disparo por acumulación de tiempo. El bit es leible, borrable y
temporizador y dependiendo del valor que posea el bit T32,se activara o escribible.
detendra el temporizador de 16 bit o el de 32 bits,el bit es leible,borrable TCKPS<1:0>: Bits para el prescaler. Son 2 bits ambos
y escribible. leibles,borrables,escribibles.
Si T32=1 (Modo temporizador de 32 bits) T32 (timer 2 y 3), T45 (timer 4 y 5): Selección del modo
1= Activa el temporizador de 32 bits. temporizador de 32 bits. Este bit posibilita la opción de elegir el
0= detiene el temporizador de 32bits. modo temporizador de 32 bits si T32=1, TMRx y TMRy forman un
TSIDL: Detención del temporizador en modo IDLE. Cuando TSIDL=1 temporizador de 32 bits.
indica que el temporizador estara detenido cuando se encuentra en el TCS: Selección de fuente de reloj. Cuando este bit se encuentra
modo de espera IDLE,y para que pueda continuar nuevamente, sera activado, se utiliza un reloj externo aplicado a la patita TxCK. En
necesario poner un 0. Se trata de un bit leible, borrable y escribible. cambio, cuando TCS=0 el reloj interno es el que se emplea. Es un
El bit 14 y los bits 12 – 9 no se encuentran implementados y son leidos bit leible, borrable y escribible.
como 0
Los bits 7, 2 y 0 no se encuentran implementados y son leidos como 0
19/05/2018
Byte superior
Los temporizadores tienen la posibilidad de funcionar en 4 Los tres tipos de temporizadores antes comentados (tipo A, tipo B y tipo
C) pueden funcionar en este modo.
modos: Para ello la señal de reloj utilizada sera la del reloj interno del sistema
Temporizador sincrono. (FOSC/4).
Contador Sincrono. La selección del modo temporizador sincrono se lleva a cabo cuando el
Contador Asincrono. bit TCS del registro de control del temporizador (TxCON) tiene valor ‘0’.
Contaje por disparo por acumulación del tiempo <Gated
time accumulation> MODO CONTADOR SINCRONO
En este modo pueden funcionar los 3 tipos de temporizadores.
Para operar en este modo el bit TCS del registro de control del
El modo de funcionamiento del temporizador vendrá temporizador (TxCON) debera tener valor 1 para que señal de reloj sea
determinado por el valor de los bits de control externa.
TCS (TxCON)<1>), TCYNC (T1CON)<2>) y Para los temporizadores tipo A ademas de poner el valor de TCS=1, el
TGATE(TxCON)<6>). bit TSYNC (TxCON)<2>) debera igualmente tomar valor 1 para realizar
NOTA: hay una restricción en el modo contador asíncrono la sincronización con la señal de reloj externa.
Los temporizadores trabajando en modo contador sincrono no
que solo permite a los temporizadores tipo A trabajar en el. funcionaran dentro del modo de reposo(SLEEP)
19/05/2018
TEMPORIZADORES DE 32 BIT
ESTRUCTURA INTERNA DEL TEMPORIZADOR DE 32
BITS (Timers 2 y 3
Para formar temporizadores de 32 bits se deben concatenar
un temporizador tipo B y otro tipo C.
;Conficuarcion de Pines
mov #0x00,w0 ;Port B all como salida Digital
mov w0,TRISB
mov #LEDS,w0 ;Initialize LED pin data to off state
mov w0,LATB
;------------------------------------------------------------------------------------------
;Configuración del Timer para un delay de 1s
clr T1CON ;Turn off Timer1 by clearing control register
clr TMR1 ;Start Timer1 at zero
mov #Fcy/1024,w0 ;Get period register value for 1/2 second
mov w0,PR1 ;Load Timer1 period register
mov #0x8030,w0 ;Get Timer1 settings (1:256 prescaler)
mov w0,T1CON ;Load Timer1 settings into control register
nop
bucle:
btss IFS0,#T1IF ;Check if Timer1 interrupt flag is set
bra bucle ;Loop back until set
bclr IFS0,#T1IF ;Clear Timer1 interrupt flag
com LATB ;cambia de alto a bajo o viciversa
bra bucle ;Retorno al Bucle
;----------------====================================
.end ;End del codigo .asm
19/05/2018
Programa en C : generar onda cuadrada en el pin RB7hacer parpadear un led ,cada 2 segundos en
dspic30f4013,usando una interrupción interna.
include <30F4013.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES CKSFSM //Clock Switching is enabled, fail Safe clock monitor is enabled
#FUSES NOBROWNOUT //No brownout reset
#device ICSP=1
#use delay(clock=32MHz,crystal=8MHz)
#define LED PIN_A11
#bit RB7=0x06.7 //Identificador para el bit RB7
#INT_TIMER1
void timer1_isr(void)
{
RB7=~RB7; //Togle RB7
set_timer1(0x0BDC); //carga del TMR1
}
void main()
{
set_tris_b(0b01111111); //configura RB7 como salida el resto como entrada
RB7=0; //Inicializo RB7
setup_timer1(TMR_INTERNAL | TMR_DIV_BY_1, 2);
enable_interrupts(INT_TIMER1);
enable_interrupts(INTR_GLOBAL);
set_timer1(0x0BDC); //Carga del TMR1
while(true); //Bucle infinito hasta interrupción
}