Interrupción timer0 PIC


Compartir: Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on LinkedIn0

Interrupción timer0 PIC, mediante la interrupción timer0 PIC se puede detener el programa  principal con el cual este trabajando el microcontrolador PIC, para indicarle al microcontrolador que se dedique a realizar otras tareas, al finalizar la interrupción timer0 PIC, se seguirá con el programa principal desde donde fue interrumpido.

En esta sección que es una secuencia del tema tratado en este enlace, se tratará sobre la interrupción timer0 PIC por desborde, por lo que es muy importante que se sepa utilizar el timer0 PIC, sobre la utilización del timer0 PIC ya se ha tratado y se puede ver aquí, para lo que se va a comentar a continuación se utilizará como base el microcontrolador PIC16F84A.

La interrupción timer0 PIC por desborde ocurre cuando el registro TMR0 del timer0 llega a su valor máximo de 255 tras lo que se reinicia a 0, a este paso de 255 a 0 se le llama desborde, y es en ese momento que se puede habilitar que ocurra una interrupción.

Interrupción timer0 PIC por desborde

 

Del registro INTCON se pondrá su bit7 GIE a 1 para habilitar el uso de las interrupciones, su bit5 TMR0IE se pondrá a 1 para habilitar el uso de la interrupción timer0 PIC por desborde, su bit2 TMR0IF es la bandera que detecta que se ha producido la interrupción del  timer0 por desborde y se tendrá que poner a 0 para que haga la detección, cuando ocurre la interrupción este bit se pone automáticamente a 1, y para seguir detectando mas interrupciones externas en al rutina de atención a las interrupciones se tendrá que poner nuevamente a 0 este bit.

interrupción timer 0 pic intcon

Del registro OPTION_REG se pone a 0 su bit5 T0CS para indicarle al PIC que se utilizará el timer0 como temporizador, el bit4 se pone a 0 ya que este se usa cuando el timer0 es utilizado como contador, mediante su bit3 PSA=0 se indica a quien será asignado el prescaler, y con sus bits PS2:PS0 se indica de cuanto será el prescaler.

interrupción timer0 pic option_reg

interrupción timer0 pic registro option_reg2

En el siguiente vídeo publicado en el canal de youtube de MrElberni se ve como utilizar la interrupción timer0 PIC por desborde, para el ejemplo se utiliza el PIC16F84A.

Del registro OPTION_REG su bit5 TOCS se pone a 0 para utilizar el timer0 PIC como temporizador, se pone el bit3 a 0 para asignar el prescaler al TMR0, con las combinaciones de los bits 2, 1 y 0 se selecciona de cuanto será el prescaler.

Del registro INTCON se pondrá su bit7 GIE a 1 para habilitar las interrupciones, su bit5 TMR0IE se pondrá a 1 para habilitar el uso de la interrupción por desborde del registro TMR0, además en necesario poner el bit 2 TMR0IF a 0 para detectar cuando ocurra la interrupción al ponerse este bit automáticamente a 1, luego dentro de la rutina de atención a las interrupciones habrá que ponerlo nuevamente a 0.

La programación está hecha en el XC8.

El código del programa en el XC8 es el siguiente:

Si he logrado ayudarte en cuanto a la interrupción timer0 PIC por desborde, comparte este enlace para poder ayudar a muchas personas mas. Muchas Gracias.

Atte: MrElberni.

Compartir: Share on Facebook0Tweet about this on TwitterShare on Google+0Share on Tumblr0Share on LinkedIn0