Curso de MPLABX y XC8 #05: Modulo Timer0 Pic18f2550 Parte#01.
Buenas compañeros.
Antes
de iniciar el Quinto capitulo del curso de programación en C para pic's
con MPLABX y XC8, les recomiendo ver los capítulos anteriores siguiendo
el siguiente LINK.
Ya vistos los anteriores capítulos y una vez teniendo todos los software
necesarios procederemos a explicar de que tratara esta clase.
Modulo Timer0 PIC18F2550: Registro T0CON
El registro T0CON controla todo aspectos de la operación del módulo, incluyendo la selección de preescala. A la vez permite la lectura y escritura. El módulo Timer0 incorpora las siguientes características:
• Software de operación seleccionable como un temporizador o contador en ambos modos de 8 bits o de 16 bits
• registros de lectura y escritura
• Dedicado 8 bits, software programable prescaler
• fuente de reloj seleccionable (interno o externo)
• Edge seleccionar para reloj externo
• Interrumpir el desbordamiento por medio de una flag o bandera.
Configuración de los bits en el registro T0CON:
bit 7 TMR0ON: Timer0 El bit / Off Control
1 = Habilita Timer0
0 = Detiene Timer0
1 = Habilita Timer0
0 = Detiene Timer0
bit 6 T08BIT: Timer0 8-Bit / 16-Bit Bit de control
1 = Timer0 se configura como una de 8 bits de temporizador / contador
0 = Timer0 se configura como un 16-bit de temporizador / contador
1 = Timer0 se configura como una de 8 bits de temporizador / contador
0 = Timer0 se configura como un 16-bit de temporizador / contador
bit 5 T0CS: Timer0 Reloj de selección de fuente poco
1 = transición en el pin T0CKI
0 = reloj ciclo de instrucción interna (CLKO)
1 = transición en el pin T0CKI
0 = reloj ciclo de instrucción interna (CLKO)
bit 4 T0SE: Timer0 Fuente Edge Selección bits
1 = Incremento en la transición de alto a bajo en el pin T0CKI
0 = Incremento de bajo a alto transición en el pin T0CKI
1 = Incremento en la transición de alto a bajo en el pin T0CKI
0 = Incremento de bajo a alto transición en el pin T0CKI
bit 3 PSA: Timer0 de divisor bits Asignación
1 = TIMER0 prescaler NO se le asigna. Entrada de reloj Timer0 no pasa por prescaler.
Se asigna 0 = Timer0 prescaler. Entrada de reloj Timer0 proviene de salida de prescaler.
1 = TIMER0 prescaler NO se le asigna. Entrada de reloj Timer0 no pasa por prescaler.
Se asigna 0 = Timer0 prescaler. Entrada de reloj Timer0 proviene de salida de prescaler.
bits 2-0 T0PS2: T0PS0: Timer0 de divisor bits de selección
111 = 1/256 Valor preescaler
110 = 1/128 Valor preescaler
101 = 1/64 Valor preescaler
100 = 1/32 Valor preescaler
011 = 1/16 Valor preescaler
010 = 1/8 Valor preescaler
001 = 1/4 Valor preescaler
000 = 1/2 Valor preescaler
111 = 1/256 Valor preescaler
110 = 1/128 Valor preescaler
101 = 1/64 Valor preescaler
100 = 1/32 Valor preescaler
011 = 1/16 Valor preescaler
010 = 1/8 Valor preescaler
001 = 1/4 Valor preescaler
000 = 1/2 Valor preescaler
Bien! ya que sabemos para que sirve cada bit del registro T0CON, vamos a ver como nuestro compilador XC8 nos permite configurar este registro y sus formas básicas:
T0CON ==> Con esta instrucción podemos configurar todos los bits del registro T0CON en forma binaria.
T0CON = 0b11011011;
Pero también se puede hacer bit por bit de la siguiente forma:
T0CONbits. y seleccionamos el bit a configurar, esto sería:
T0CONbits.TMR0ON: 1 ó 0
T0CONbits.T0SE: 1 ó 0
T0CONbits.PSA: 1 ó 0
T0CONbits.T0PS0: 1 ó 0
T0CONbits.T0PS1: 1 ó 0
T0CONbits.T0PS2: 1 ó 0
ETC...
Para saber la carga máxima que se le puede dar al timer0 con respecto al modo de bits que este utilizando se utiliza el siguiente calculo:
(2^16)-1=65535 Modo 16.
(2^8)-1=255 Modo 8 bits.
El 2 se refiere a los dos registros que acumulan la carga los cuales son Timer0L y Timer0H; y luego se eleva al modo de bits del timer0 a utilizar; luego se le resta uno para no acudir a la bandera de desbordamiento del timer0.
Para saber la carga máxima que se le puede dar al timer0 con respecto al modo de bits que este utilizando se utiliza el siguiente calculo:
(2^16)-1=65535 Modo 16.
(2^8)-1=255 Modo 8 bits.
El 2 se refiere a los dos registros que acumulan la carga los cuales son Timer0L y Timer0H; y luego se eleva al modo de bits del timer0 a utilizar; luego se le resta uno para no acudir a la bandera de desbordamiento del timer0.
Bien para complementar y entender mejor esta clase, los invito a que vean el siguiente vídeo donde se mostrará y profundizará más acerca del Modulo TIMER0 del PIC18F2550:
Esto sería todo del quinto capitulo de programación en C con XC8
Compiler y MPLABX, de pronto en el vídeo tuve algunos errores, o mal
pronunciamiento, pero la finalidad de este blog es corregir esto y
profundizar un poco más en el tema; espero que les sirva!
Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!
NOTA: se les recuerda a los lectores que se utilizo la versión del compilador XC8 Versión 1.34 la cual trae las peripheral libraries incluidas en él; el pdf de estas lo pueden encontrar en la parte de etiquetas del blog en la etiqueta llamada Documentación.
Instalación de MPLABX y XC8 Compiler:
http://electronicalibrexc.blogspot.com.co/2015/10/electronica-libre-curso-de-xc8-y-mplabx.html
Facebook: https://www.facebook.com/electronicalibrexc/
Youtube: http://www.youtube.com/c/breismanrueda
Google +: https://plus.google.com/u/0/+breismanrueda
Twitter: https://twitter.com/BreismamR
Esto es todo por hoy, Sigue mi blog y visita mi próxima entrada!
Cualquier duda, trabajo, tutoria personalizada por correo electronico o pagina en facebook:
Correo: ElectronicaLibreXC@outlook.com
Facebook: https://www.facebook.com/electronicalibrexc/
Salu2...
No hay comentarios.:
Publicar un comentario