Story Transcript
Microprocesadores Temporizadores / Contadores
Prof. Luis Araujo Universidad de Los Andes
Prof. Luis Araujo
Microprocesadores
Temporizador / Contador
Prof. Luis Araujo
Microprocesadores
Timer 0
Temporizador/Contador de 8 bits (TMR0), Preescalador programable de 8 bits, Modo temporizador: el valor del registro TMR0 se incrementa con cada ciclo de instrucci´ on (o cada X ciclos dependiendo del preescalador), Modo contador el valor del registroTMR0 se incrementa en cada flanco (ascendente o descendente) del pin RA4/T0CKI. En ambos casos al pasar TMR0 de 0xFF a 0x00 la bandera de interrupci´on del Timer 0 (T0IF) se pone a 1
Prof. Luis Araujo
Microprocesadores
Timer 0
Prof. Luis Araujo
Microprocesadores
Timer 0
Prof. Luis Araujo
Microprocesadores
Timer 0
Temporizaci´on: Temporizacion =
(256 − Carga) ∗ PS ∗ 4 Fosc
Donde: Carga = Valor que se le asigna al registro TMR0 al comenzar la temporizaci´ on PS = Preescalador Fosc = Frecuencia del oscilador Temporizaci´ on est´a dada en segundos
Prof. Luis Araujo
Microprocesadores
Timer 0 - Temporizaci´on M´axima
Fosc = 4Mhz Temporizacion =
(256 − 0) ∗ 256 ∗ 4 = 65,536ms 4,000,000
Fosc = 8Mhz Temporizacion =
(256 − 0) ∗ 256 ∗ 4 = 32,768ms 8,000,000
Fosc = 20Mhz Temporizacion =
(256 − 0) ∗ 256 ∗ 4 = 13,1072ms 20,000,000
Prof. Luis Araujo
Microprocesadores
Timer 0 Carga: Temporizacion ∗ Fosc PS ∗ 4 Para temporizaci´on de 25ms y Fosc = 4MHz: Carga = 256 −
Carga = 256 −
0, 025 ∗ 4, 000, 000 = 158 256 ∗ 4
Para temporizaci´on de 12,5ms y Fosc = 4MHz: Carga = 256 −
0, 0125 ∗ 4, 000, 000 = 207 256 ∗ 4
Para temporizaci´on de 37,5ms y Fosc = 4MHz: Carga = 256 −
0, 0375 ∗ 4, 000, 000 = 110 256 ∗ 4
Prof. Luis Araujo
Microprocesadores
Ejercicio 19
Prof. Luis Araujo
Microprocesadores
Ejercicio 19
Prof. Luis Araujo
Microprocesadores
e19.c
Prof. Luis Araujo
Microprocesadores
Timer 1
Temporizador/contador de 16 bits (TMR1H y TMR1L) Modo temporizador el par de registros TMR1 se incrementa en cada ciclo de instrucci´ on, este modo se selecciona poniendo a 0 el bit TMR1CS del registro T1CON Modo contador el par de registros TMR1 se incrementa en cada flanco ascendente de una se˜ nal de reloj externa, este modo se selecciona poniendo a 1 el bit TMR1CS del registro T1CON En ambos casos al pasar el par de registros TMR1 de 0xFFFF a 0x0000 la bandera de interrupci´ on del Timer 1 (TMR1IF) se pone a 1
Prof. Luis Araujo
Microprocesadores
Timer 1
Prof. Luis Araujo
Microprocesadores
Timer 1
Prof. Luis Araujo
Microprocesadores
Timer 1
Temporizaci´on: Temporizacion =
(65536 − Carga) ∗ PS ∗ 4 Fosc
Donde: Carga = Valor que se le asigna al registro TMR1H—TMR1L al comenzar la temporizaci´ on PS = Preescalador Fosc = Frecuencia del oscilador Temporizaci´ on est´a dada en segundos
Prof. Luis Araujo
Microprocesadores
Timer 1 - Temporizaci´on M´axima
Fosc = 4Mhz Temporizacion =
(65,536 − 0) ∗ 8 ∗ 4 = 524,288ms 4,000,000
Fosc = 8Mhz Temporizacion =
(65,536 − 0) ∗ 8 ∗ 4 = 262,144ms 8,000,000
Fosc = 20Mhz Temporizacion =
(65,536 − 0) ∗ 8 ∗ 4 = 104,8576ms 20,000,000
Prof. Luis Araujo
Microprocesadores
Timer 1 Carga: Carga = 65,536 −
Temporizacion ∗ Fosc PS ∗ 4
Para temporizaci´on de 500ms y Fosc = 4MHz: Carga = 65,536 −
0, 5 ∗ 4, 000, 000 = 3036 8∗4
Para temporizaci´on de 100ms y Fosc = 8MHz: Carga = 65,536 −
0, 1 ∗ 8, 000, 000 = 40536 8∗4
Para temporizaci´on de 50ms y Fosc = 20MHz: Carga = 65,536 −
0, 05 ∗ 20, 000, 000 = 34286 8∗4
Prof. Luis Araujo
Microprocesadores
Ejercicio 20
Prof. Luis Araujo
Microprocesadores
Ejercicio 20
Prof. Luis Araujo
Microprocesadores
e20.c
Prof. Luis Araujo
Microprocesadores
Timer 2
Temporizador de 8 bits (TMR2) Tiene preescalador y postescalador Adem´as el registro de periodo PR2 que marca el valor m´aximo que puede alcanzar la cuenta del registro TMR2 A diferencia de los otros temporizadores, el Timer 2 no incrementa su cuenta hasta llegar a 0xFF. Incrementa su cuenta desde 0x00 con cada ciclo de instrucci´on hasta que el valor del registro TMR2 coincide con el del registro PR2, la bandera de interrupci´ on del Timer 2 (TMR2IF) se pone a 1 y despu´es, en el siguiente ciclo reinicia la cuenta desde 0x00
Prof. Luis Araujo
Microprocesadores
Timer 2
Prof. Luis Araujo
Microprocesadores
Timer 2
Prof. Luis Araujo
Microprocesadores
Timer 2
Temporizaci´on: Temporizacion =
(PR2 − Carga) ∗ PS ∗ OPS ∗ 4 Fosc
Donde: Carga = Valor que se le asigna al registro TMR2 al comenzar la temporizaci´ on PR2 = Valor M´aximo PS = Preescalador y OPS = Posescalador Fosc = Frecuencia del oscilador Temporizaci´ on est´a dada en segundos
Prof. Luis Araujo
Microprocesadores
Timer 2 - Temporizaci´on M´axima Similar el Timer 0 Fosc = 4Mhz Temporizacion =
(256 − 0) ∗ 16 ∗ 16 = 65,536ms 4,000,000
Fosc = 8Mhz Temporizacion =
(256 − 0) ∗ 16 ∗ 16 = 32,768ms 8,000,000
Fosc = 20Mhz Temporizacion =
(256 − 0) ∗ 16 ∗ 16 = 13,1072ms 20,000,000
Prof. Luis Araujo
Microprocesadores
Timer 1
Carga o M´aximo (PR2): PR2 − Carga =
Temporizacion ∗ Fosc PS ∗ OPS ∗ 4
Para temporizaci´on de 50ms, Fosc = 4MHz y PR2 = 200: Carga = 200 −
0, 05 ∗ 4, 000, 000 =5 16 ∗ 16 ∗ 4
Para temporizaci´on de 10ms, Fosc = 8MHz y Carga = 10: PR2 =
0, 01 ∗ 8, 000, 000 + 10 = 88 16 ∗ 16 ∗ 4
Prof. Luis Araujo
Microprocesadores