Contadores. Prof. Luis Araujo. Universidad de Los Andes

Microprocesadores Temporizadores / Contadores Prof. Luis Araujo Universidad de Los Andes Prof. Luis Araujo Microprocesadores Temporizador / Conta...
0 downloads 1 Views 4MB Size
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