Ir al contenido

Timer 1 y Timer 2

Despues de Timer 0 (8/16 bit, T0CON, retardo con polling o ISR), el Tema 8 continua con Timer1 y Timer2. Timer1 es el motor de captura y comparacion del modulo CCP; Timer2 es la base del PWM con registro de periodo PR2. Ambos se usan en Practica 3 (frecuencimetro), Practica 4/6 (PWM, motor paso a paso) y el modulo PWM.

Las interrupciones de Timer1/2 requieren PEIE + PIE1 ademas de GIE — a diferencia de Timer0 que usa solo INTCON (Interrupciones).

CaracteristicaDetalle
RegistrosTMR1H:TMR1L, T1CON
Resolucion16 bit (65536 cuentas)
Prescaler1, 2, 4, 8 (T1CKPS1:0)
RelojFosc/4 interno o externo en T1CKI (RC0)
InterrupcionTMR1IE en PIE1, bandera TMR1IF en PIR1
Tiempo = (4 / Fosc) × (65536 − TMR1H:TMR1L) × Pre-divisor

Misma idea que Timer0 en 16 bit, pero prescaler maximo 1:8 (no 1:256). Para retardos largos combina prescaler alto o encadena overflows en ISR.

Bit / campoFuncion
TMR1ON1 = Timer1 activo
T1CKPS1:0Prescaler 1:1, 1:2, 1:4, 1:8
T1OSCENOscilador externo de baja potencia (LP)
T1SYNCSincronizacion en modo contador
T1CS0 = Fosc/4; 1 = fuente externa

El modulo CCP usa Timer1 como referencia de tiempo:

Modo CCPQue mide / hacePractica
CapturaAnota TMR1H:L cuando hay flanco en RC2Ancho de pulso, frecuencia
ComparacionDispara evento cuando TMR1 == CCPR1H:LSeñales temporizadas

En Practica 3 (frecuencimetro) Timer1 suele medir la ventana de tiempo mientras Timer0 cuenta pulsos.

config_tmr1:
MOVLW B'00000001' ; TMR1ON=1, prescaler 1:1 (ajusta segun necesidad)
MOVWF T1CON
MOVLW HIGH(.65536-.1000) ; recarga para N=1000 cuentas (ejemplo)
MOVWF TMR1H
MOVLW LOW(.65536-.1000)
MOVWF TMR1L
BCF PIR1, TMR1IF
BSF PIE1, TMR1IE
BSF INTCON, PEIE
BSF INTCON, GIE
RETURN

Timer2 es solo temporizador interno 8 bit con registro de periodo PR2:

CaracteristicaDetalle
ContadorTMR2 (8 bit, 0 → PR2 → reset)
PeriodoPR2 define cuando hay match / overflow
Prescaler1, 4, 16 (T2CKPS1:0)
Post-escalador1:1 a 1:16 (TOUTPS3:0) — retrasa la interrupcion
InterrupcionTMR2IE / TMR2IF en PIE1/PIR1
Bit / campoFuncion
TMR2ON1 = Timer2 activo
T2CKPS1:0Prescaler 1, 4, 16
TOUTPS3:0Post-escalador para interrupcion TMR2IF
Periodo_PWM ≈ (4 / Fosc) × (PR2 + 1) × Prescaler_T2

El duty en porcentaje:

Duty ≈ (CCPR1L : extensiones) / (4 × (PR2 + 1)) × 100%

Detalle completo en PWM y modulo CCP.

config_tmr2:
MOVLW D'249' ; PR2 → define periodo
MOVWF PR2
MOVLW B'00000111' ; TMR2ON, prescaler 1:16 (ajusta)
MOVWF T2CON
CLRF TMR2
BCF PIR1, TMR2IF
BSF PIE1, TMR2IE
BSF INTCON, PEIE
BSF INTCON, GIE
RETURN
Timer0Timer1Timer2
Bits8 o 16168 (+ PR2)
Prescaler max1:2561:81:16 (+ post)
IE / IFINTCONPIE1/PIR1PIE1/PIR1
Uso claveRetardo, contador RA4CCP captura/comparacionPWM, multiplexado
Practica3, 533, 4, 6

El PIC18F4550 incluye Timer3 (similar a Timer1). Consulta el datasheet para proyectos avanzados; el curso UNEXPO se centra en Timer0–2.

ErrorConsecuencia
Timer1/2 sin PEIEISR nunca se ejecuta aunque TMR1IE=1
Confundir PR2 con TMR2PR2 = periodo deseado; TMR2 cuenta hasta PR2
PWM sin Timer2 activoCCP1 sin onda en RC2
Prescaler distinto en formulaTiempos calculados incorrectos

¿Que timer usa el PWM del CCP?

Timer2 con PR2 como periodo.

¿Timer1 es de 8 o 16 bits?

16 bits — usado en captura y comparacion CCP.

¿Que registros habilitas para interrupcion de Timer2?

TMR2IE (PIE1), PEIE y GIE (INTCON); limpias TMR2IF (PIR1) en la ISR.

Ejercicio · Parcial

Elige el timer

Para medir pulsos en RA4 durante 1 s y luego leer el total: ¿Timer0 como contador o Timer2? ¿Quien marca la ventana de 1 s?

Examen interactivo

Timer 1 y Timer 2

Basado en: Clase Tema 8. Timer.pdf

0 de 0 respondidas

¿Cual timer usa el modulo PWM del CCP?
Timer1 es de...
El periodo PWM depende principalmente de...
Timer1 necesita PEIE porque...
PR2 en Timer2 define...
Prescaler maximo tipico: Timer0 vs Timer1...