PIC18F25K83 & XC8: Uso del TIMER0 e interrupciones

Saludos! Siguiendo con los ejemplos del PIC18F25K83 en XC8, hoy veremos la forma de usar el TIMER 0 y las interrupciones, para este caso retomaremos nuestro post anterior "PIC18F25K83 & XC8: Uso de entradas y salidas - LEDs secuenciales". No tocare mucha teoria sobre esto ya que lo he mencionado sobre este  TIMER en otro post "MPLAB X & C18: Uso del TIMER 0 como temporizador en el PIC18F4620".

Circuito:
Para el circuito vamos a retomar lo que se mostro en el post "PIC18BT MCE Development Board: Diagrama esquematico" por lo tanto tendriamos conectados los LEDs al PORTC.


Código:
Bueno con respecto a las interrupciones, este PIC soporta dos modos de trabajo, la primera es IVT (interrupt vector table) y la segunda es por prioridades (high y low priority), este ultimo sera el que usare para este ejemplo, si quieres saber mas sobre esto recomiendo revisar la seccion "9.0 INTERRUPT CONTROLLER" del datasheet del PIC. Lo que si es importante mencionar es que se debe desabilitar el bit MVCEN del registro CONFIG2L cuando se haga la configuracion de bits del microcontrolador. 


Con respecto a la configuracion del TIMER0, lo estare configurando a 100 milisegundos asi que estare usando esta configuracion:
  • Operacion del timer a 16 bits.
  • Postscaler de cero.
  • Prescaler de 16.
  • El clock del timer sera Fosc/4.
Aca tenemos el calculo para saber el valor que debemos precargar en el TIMER para que se desborde en el tiempo que se desea.


Con este dato configuramos el timer en "void RTCC_Enable(void)", despues en el bucle principal llamamos la funcion "RTCC_Update()" el cual procede cada que TIMER0_OVR_FLAG = 1 y esto pasa cada 100 milisegundos. Se hace un conteo y cuaando han pasado 1 segundo, se cambia el estado del LED2 y 3 de la board(abajo el enlace para descarga del codigo completo). 

Vídeo:
Aquí un pequeño vídeo del circuito en funcionamiento:


Descargas:
Aquí el enlace directo para DESCARGAR los archivos disponibles, también puedes revisar o descargar la información desde mi repositorio en GitHub, si no sabes como descargarlo puedes checar aquí, bueno por el momento es todo si tienes dudas, comentarios, sugerencias, inquietudes, traumas, etc. dejarlas y tratare de responder lo mas pronto posible.




Donaciones:
Si te gusta el contenido o si los recursos te son de utilidad, comparte el enlace en tus redes sociales o sitios donde creas que puede ser de interés y la otra puedes ayudarme con una donación para seguir realizando publicaciones y mejorar el contenido del sitio. También puedes hacer donaciones en especie, ya sea con componentes, tarjetas de desarrollo o herramientas. Ponte en contacto para platicar, o puedes volverte uno de nuestros sponsors.


Pido una retroalimentación avisando cada que un enlace no sirva o tenga errores al momento de abrirlo, así también si una imagen no se ve o no carga, para corregirlo en el menor tiempo posible.

Links:

Publicar un comentario

0 Comentarios