You are on page 1of 4

MICROCONTROLADORES

TIMERS DEL dsPIC30F4013


1. EL dsPIC30F4013 cuantos mdulos timers tiene

RESPUESTA
El dsPIC30F4013 tiene 5 mdulos de temporizador de 16 bits. Cada mdulo contiene
Los siguientes registrs:

TMRx - Contador de temporizador / contador de 16 bits,


PRx - Registro de perodo de 16 bits que contiene el valor del perodo,
TxCON - registro de control de 16 bits para seleccionar el modo del temporizador.

Cada mdulo temporizador tambin tiene tambin los bits asociados para el control de
interrupcin
Que utilizaremos ms adelante en la seccin de interrupcin y stos son:
TxIE: bit de control de habilitacin de interrupcin,
TxIF - bit de estado de indicador de interrupcin,
TxIP <2: 0> - tres bits de control de prioridad de interrupcin (en la interrupcin
Registrar IPCx).

2. Hacer una clasificacin de los timers


Respuesta
Los temporizadores de los microcontroladores dsPIC30F se clasifican en tres Tipos de
temporizadores A, B y C.
Slo los temporizadores de tipo B y C pueden combinarse para ser utilizado como
temporizador / contador de 32 bits.

3. Diga los modos de funcionamiento de los timers


Respuesta
Cada mdulo temporizador puede funcionar en uno de los siguientes modos:

Como temporizador sncrono


Como contador sncrono
Como un temporizador cerrado
Como contador asncrono (slo base de tiempo Tipo A)

Los modos de temporizador estn determinados por los siguientes bits:

TCS (TxCON <1>): Bit de control de la fuente del reloj del temporizador
TSYNC (T1CON <2>): Bit de control del temporizador SYNChronizatio (Tipo A Base
de tiempo solamente)
TGATE (TxCON <6>): Bit de control del temporizador GATE
Los temporizadores estn activados o desactivados mediante el control TON (TxCON
<15>)
Observe tambin que SOLAMENTE la base de tiempo de tipo A (Temporizador 1)
trabaja en Modo de reloj asncrono.

4. Realizar el diagrama de blues del TIMER1 ( TIMER TIPO A)


5. Representar los registros de trabajo del TIMER1
Respuesta

Registro TIMER116 bits


Registro PR1 16 bits
Registro T1CON16 bits

Los bits del registro T1CON

TON - Temporizador Encendido (1) / Temporizador Apagado (0)


TSIDL - Modo inactivo (0 contina, 1 paradas en modo inactivo)
TGATE - Modo Tiempo cerrado
Prescaler: bits
TCKPS1 TCKPS0 FRECUENCIA PERIODO
0 0 1/1 X1
0 1 1/8 X8
1 0 1/64 X64
1 1 1/256 X256

TSYNC - Temporizador Modo sncrono (1 s, 0 no)


TCS - este bit permite programar el timer1 como temporizador o como
contador : TCS=1 timer1 como contador y TCS=0 modo temporizador

6.
Se generar una seal de onda cuadrada de 1 KHz en el pin RF0 de PORTD del
dsPIC30F4013 con reloj de 120 MHz. Utilizar el Temporizador1 (tipo A) para generar
esta seal.
Calcular los valores de PR1 y TCKPS

Solucin
T = 1 / f = 1/1000 = 1 mS Tiempo de retardo = T / 2 = 0,5 mS

R2
10k
U1
1 40
MCLR AVDD
2 39
RB0 AVss
3 38
RB1 RB9
4 37 1 ms
RB2 RB10
5 36
RB3 RB11
6 35
RB4 RB12
7 34
RB5 RD0
8 33
RB6 RD1
9 32
RB7 VDD
10 31
RB8 VSS
11 30
VDD RF0
12 29
VSS RF1
13 28
OSC1/CLKI RF4
14
OSC2/RC15 RF5
27 D1
15 26 LED
RC13 RF2/RX
16 25
RC14 RF3/TX
17 24
INT0/RA11 RF6
18
INT2/RD9 INT1/RD8
23 R1
19 22 10k
RD3 RD2
20 21
VSS VDD

DPIC30F4011

Reloj del temporizador = Xtal / 4 = 120 MHz / 4 = 30 MHz


Tiempo de ciclo del temporizador = 1 / 30MHz = 33 nS
Delay Count = Tiempo Delay / Tiempo Del Ciclo Del Temporizador
= 0,5 mS / 33nS = 15151

El conteo de retardo puede ajustarse mediante los valores de PR1 y TCKPS


Se establece TCKPS = 1: 1 y PR1 = 15151

Puede utilizar la frmula:


4
= 1

7.
Escribir una secuencia de instrucciones para configurar el temporizador para generar la
onda cuadrada del ejemplo 06
Solucin
TRISFbits.TRISF0 = 0; // Configurar el puerto RE0 para que se emita
PR1 = 15151; // establecer PR1 para 0,5 mS
T1CONbits.TSIDL = 0; // apagado en modo inactivo
T1CONbits.TCS = 0; // utilizar reloj interno Tcy
T1CONbits.TCKPS = 0; // prescalar 1: 1
T1CONbits.TGATE = 0; // sin operacin cerrada
T1CONbits.TON = 1; // encender el temporizador

8. Problema:
Repita los dos ejemplos anteriores( 6 y 7) para una aplicacin para genenrar una onda
cuadrada con frecuencia 8 KHz

9. Escribir un programa de cdigo C para usar el temporizador de tipo A (Timer 1) del


DsPIC para implementar el ejemplo anterior (8).
Solucion
Programa en MPLAB X IDE o tambien puede realizer en assembler
#include "p30f4013.h"
// Macros para los registros de fusibles de configuracin
_FOSC (CSW_FSCM_OFF & XT_PLL16); / * Configurar para Crystal * /
_FWDT (WDT_OFF); / * Apaga el temporizador Watch-Dog. * /
/ * Activar el pin de reinicio de MCLR y desactivar los temporizadores de encendido. * /
_FBORPOR (PBOR_OFF & MCLR_EN);
_FGS (CODE_PROT_OFF); / * Desactivar la proteccin de cdigo * /

Void main (void) {


TRISEbits.TRISE0 = 0; // Configurar el puerto RE0 para que se emita
PR1 = 15151; // establecer PR1 para 0,5 mS
T1CONbits.TSIDL = 0; // apagado en modo inactivo
T1CONbits.TCS = 0; // utilizar reloj interno Tcy
T1CONbits.TCKPS = 0; // prescalar 1: 1
T1CONbits.TGATE = 0; // sin operacin cerrada
T1CONbits.TON = 1; // encender el temporizador

while(1) {
PORTEbits.RE0 = 1;
IFS0bits.T1IF = 0; // limpiar timer1 flag
While (! IFS0bits.T1IF) // espera mientras el temporizador1 no ha terminado
;
PORTEbits.RE0 = 0;
IFS0bits.T1IF = 0; // limpiar timer1 flag
While (! IFS0bits.T1IF) // espera mientras el temporizador1 no ha terminado

}
}

You might also like