Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
MICROCONTROLADORES dcPIC30F4013
Tema: TIMERS
El resumen es:
Encender el Timer1. (Ponerlo a 1)
Elegir el preescaler. (Ponerlo en 01)
Seleccionar de donde proviene el clock. (Dejarlo en 0)
Seleccionar si asincrono o sincrono. (Dejarlo en 0)
Cargar el valor a comparar en PR1. (Cargarle 0x383B)
Una diferencia que habrán notado es que existe un registro PR1, este registro lo que hace es
compararse con el valor del Timer y al momento en que ambos son iguales, se produce la
interrupción y además se resetea el Timer.
El preescaler elegir 1:8, ya que las demás opciones eran: 1:1 , 1:64, 1:256
Para empezar el desarrollo del código, debemos tener en cuenta las posibilidades del
temporizador y a partir de ahí estudiar las posibilidades para llevarlo a cabo.
Lo primero que vamos a hacer es mirar cuales son las máximas temporizaciones de interrupción
para el reloj interno seleccionado:
El timer1 se desborda cuando los valores de los registros TMR1 y PR1 coinciden, es
decir cuando pasamos del valor precargado en TMR1 a FFFFh=65536d (valor por
defecto del registro PR1).
Reloj interno de 4 MHz (elegido por nosotros) Tcy = 250ns = 1/4 MHz (Tiempo de
Ciclo de instrucción).
El timer1 dispone de los siguientes Prescaler: 1, 8, 64, 256. Con los cuales podemos
calcular las máximas temporizaciones de interrupción para reloj interno de 4 MHz,
atendiendo a la siguiente ecuación:
4
𝑇𝐶𝑌 = 𝐹
𝑜𝑠𝑐
Prescaler 64 T_interrupción=1.048s
Prescaler 256 T_interrupción=4.194s
.equ __30F4013, 1
.include "p30f4013.inc"
config __FOSC, XT ;Trabajar con el Osc Interno
config __FWDT, WDT_OFF ;deshabilitar el Perro guardian
config __FBORPOR, MCLR_EN
Loop:
BTSS IFS0,#T1IF
BRA Loop
BCLR IFS0,#T1IF ;Borro Flag
BTG LATB,#0 ; Alterno el valor de RB0
BRA Loop ; Inicio nuevamente
1. Se generará una señal de onda cuadrada de 1 KHz en el pin RB0 de PORTB del
dsPIC30F4013 con reloj de 120 MHz. Temporizador1 (tipo A) Utilizado para generar
esta señal.
Calcular los valores de PR1 y TCKPS para lograr esto.
𝟒
Solution: 𝑻𝒓𝒆𝒕𝒂𝒓𝒅𝒐 = ∗ 𝑷𝒔 ∗ 𝑷𝑹𝟏
𝒇𝒐𝒔𝒄
T1IF
Problema 3:
Repita los dos ejemplos anteriores para una aplicación para una frecuencia de 8 KHz