Está en la página 1de 2

TIMERS

Una de las labores ms habituales en los programas de control de dispositivos suele


ser determinar intervalos concretos de tiempo, y recibe el nombre de temporizador
(TIMER) el elemento encargado de realizar esta funcin.Tambin suele ser frecuente
contar los impulsos que se producen en el exterior del sistema, y el elemento
destinado a este fin se denomina contador.

Los TIMERS o Temporizadores son mdulos integrados en el controlador que


permiten realizar cuentas tanto de eventos internos como externos.

Tipos de Temporizadores:

Los dsPIC presenta tres tipos de temporizadores; los de TIPO A ,TIPO B y EL TIPO
C.

TIMER 1 (Tipo A):


Ejemplo1: dsPIC30f2010_Timerled.s

/****************************************************************/
// Realizar un programa que parpadear (en un periodo de un segundo), algunos
// pines del puerto E, utilizando para ello el cristal Interno y el modulo del
// timer 1 del dsPIC.
/****************************************************************/

.equ __30F4013, 1
.include "p30f4014.inc"
config __FOSC, FRC ;Trabajar con el Osc Interno
config __FWDT, WDT_OFF ;deshabilitar el Perro guardian
config __FBORPOR, MCLR_EN
.equ Fcy, #7370000 ;Frecuencia del Osc.Interno
.equiv LEDS, 0x0007
;.................................................................................................................
;.................................................................................................................
.global __reset ;The label for the first line of code.
.text ;Start of Code section
__reset:
mov #__SP_init,w15 ;Initalize the Stack Pointer
mov #__SPLIM_init,w0
mov w0,SPLIM ;Initialize the Stack Pointer Limit Register
nop ;Add NOP to follow SPLIM initialization
;-----------------------------------------------------------------------------------------------------------------
;Conficuarcion de Pines
mov #0x00,w0 ;Port E all como salida Digital
mov w0,TRISE
mov #LEDS,w0 ;Initialize LED pin data to off state
mov w0,LATE
;-----------------------------------------------------------------------------------------------------------------
;Configuracion 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
;-----------------------------------------------------------------------------------------------------------------
buclePrincipal:
btss IFS0,#T1IF ;Check if Timer1 interrupt flag is set
bra buclePrincipal ;Loop back until set
bclr IFS0,#T1IF ;Clear Timer1 interrupt flag
com LATE
bra buclePrincipal ;Retorno al Bucle
;-----------------------------------------------------------------------------------------------------------------
.end ;End del codigo .asm

También podría gustarte