top of page
  • Adal

MPLAB X 10 Timers

Hooola!


Los timers son una herramienta muy útil dentro del mundo de los microcontroladores, porque pueden ser el vinculo entre el tiempo del procesador, con el tiempo real

Aquí unos conceptos básicos de los timers


Que es un Timer Overflow?

Para el caso de la Xpress board, tenemos esta configuración de los Timers

Y los SFR's (Special Function Register) específicos para configurar el Timer0

Por ultimo hay que hacer mención de que es un Prescaler, es una parte del hardware programable que divide la frecuencia utilizada por diversos rangos para conseguir temporizaciones mas largas, en el ejemplo de abajo, la cuenta realmente se divide entre 8, ya que por cada 8 pulsos de entrada, solo se aumenta uno en el contador

Por dentro, así funciona el timer



Muy bien, terminada la teoría, ahora pasamos al MplabX, una vez abierto y creado un nuevo proyecto abrimos el MCC y del lado izquierdo, en el Device Resources, buscamos los timers

En la configuración del Timer0, agregamos un prescaler de 4, cambiamos el modo a 16 bits, habilitamos la interrupción y dejamos el periodo como de 1s

Ahora en el Pin Module, habilitamos el PORTA0-3 como salidas y los renombramos, generamos el código del MCC y salimos


Ahora nos dirigimos al archivo tmr0.c que esta en la ruta de nuestro proyecto->Source Files->MCC Genereted Files->tmr0.c, dentro de ese archivo buscaremos la función TMR0_ISR (ISR=Interrup Service Routine), y dentro de esta, debajo del comentario donde podemos agregar nuestro propio código; agregaremos solamente un toggle del puerto A, para que así, encienda y apague cada segundo los 4 Leds de la tarjeta


Regresando al main.c solo tenemos que descomentar la linea de interrupciones globales, recordando un poco el post de MPAB X 2 Interrupciones, de como esta la prioridad de estas


Compilamos y subimos, y deberíamos de ver como es que nuestros Leds se encienden y apagan cada segundo



Si quisiéramos hacer esto mismo y mandar a dormir al micro, solamente tendríamos que cambiar el Clock Source en la configuración del TMR0 por otro que corra mientras el CPU esta dormido
















17 visualizaciones0 comentarios

Entradas Recientes

Ver todo
bottom of page