Está en la página 1de 4

MICROCONTROLADORES

TIMERS DEL dsPIC30F4013


1. EL dsPIC30F4013 cuantos módulos timers tiene

RESPUESTA
El dsPIC30F4013 tiene 5 módulos de temporizador de 16 bits. Cada módulo contiene
Los siguientes registrós:

 TMRx - Contador de temporizador / contador de 16 bits,


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

Cada módulo temporizador también tiene también los bits asociados para el control de
interrupción
Que utilizaremos más adelante en la sección de interrupción y éstos son:
 TxIE: bit de control de habilitación de interrupción,
 TxIF - bit de estado de indicador de interrupción,
 TxIP <2: 0> - tres bits de control de prioridad de interrupción (en la interrupción
Registrar IPCx).

2. Hacer una clasificación de los timers


Respuesta
Los temporizadores de los microcontroladores dsPIC30F se clasifican en tres Tipos de
temporizadores A, B y C.
Sólo 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 módulo temporizador puede funcionar en uno de los siguientes modos:

 Como temporizador síncrono


 Como contador síncrono
 Como un temporizador cerrado
 Como contador asíncrono (sólo base de tiempo Tipo A)

Los modos de temporizador están 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 están activados o desactivados mediante el control TON (TxCON
<15>)
Observe también que SOLAMENTE la base de tiempo de tipo A (Temporizador 1)
trabaja en Modo de reloj asíncrono.

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


5. Representar los registros de trabajo del TIMER1
Respuesta

Registro TIMER116 bits


Registro PR1  16 bits
Registro T1CON16 bits

Los bits del registro T1CON

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


 TSIDL - Modo inactivo (0 continúa, 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 síncrono (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 señal 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 señal.
Calcular los valores de PR1 y TCKPS

Solución
 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 fórmula:


4
𝑇𝑑𝑒𝑙𝑎𝑦 = ∗ 𝑃𝑟𝑒𝑠𝑐𝑎𝑙𝑒𝑟 ∗ 𝑃𝑅1
𝑓𝑜𝑠𝑐

7.
Escribir una secuencia de instrucciones para configurar el temporizador para generar la
onda cuadrada del ejemplo 06
Solución
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 operación cerrada
T1CONbits.TON = 1; // encender el temporizador

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

9. Escribir un programa de código 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 configuración
_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 protección de código * /
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 operación 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

}
}

También podría gustarte