TIMER E INTERRUPÇÃO POR TIMER
TIMER
 O “TIMER” nada mais é do que um simples contador binário que pode ser configurado para contar
pulsos de clock (Interno/Externo).Assim que atingir o valor máximo, ele voltará a zero, configurando
um sinalizador OverFlow e gerando a interrupção, se habilitada.
 Todos os Timers podem atuar como temporizadores ou servir para a geração de PWM. Lembrando
que o timer dois já é por default utilizado na configuração dos pinos CCP1 e CCP2.
 O PIC16F877a possui trêsTIMERs.
 Timer0 (temporizador de 8 bits)
 Timer1 (temporizador de 16 bits)
 Timer2 (temporizador de 8 bits)
CONTADORES BINÁRIOS
 Contador de 8-bits
 Incrementa uma unidade a cada período de tempo.
 Conta o equivalente a . Portando conta de 0 a 255.
 Contador de 16-bits
 Conta o equivalente a . Portanto conta de 0 a 65535.
INTERRUPÇÃO PORTIMER
 Quando o TIMER incrementar e atingir seu valor máximo, 255 (8 bits) ou 65535 (16
bits), ele acionará uma interrupção e se inicializará novamente em 0.
 Essa interrupção é chamada de interrupção por timer.
PRESCALER
 Prescaler é o nome da parte de um microcontrolador que divide a FOSC antes de atingir a lógica que
incrementa o status do temporizador.
Fonte: https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-c/timer-tmr0
WATCHDOG
Basicamente, o watchdog é um temporizador de supervisão que monitora a
operação do microcontrolador.
Como Funciona:
O watchdog é configurado para um intervalo de tempo específico. Durante a operação normal, o
microcontrolador precisa periodicamente resetar o watchdog antes que esse intervalo se esgote. Se o
microcontrolador ficar preso em um estado de erro, como um loop infinito ou outra condição anormal
que impeça a execução do programa, ele não conseguirá resetar o watchdog a tempo, assim o
microcontrolador entra num estado de falha e reinicia o sistema, restaurando a operação normal.
PRESCALER
 O valor do Prescaler é de 2 a 256 e pode ser definido usando o registro OPTION_REG. Como no
exemplo abaixo para o timer 0.
 O tempo para o estouro do timer depende da FOSC e do prescaler.
TIMER 0
 O móduloTimer 0 é um temporizador/contador de 8 bits com os seguintes
recursos:
 Registro temporizador/contador de 8 bits (TMR0)
 Pré-escalador de 8 bits (compartilhado com Watchdog Timer)
 Fonte de relógio interna ou externa programável
 Seleção de borda de clock externa programável
 Interrupção em caso de estouro
TIMER 0
 Registradores usados ​
​
para o Timer 0
 OPTION_REG
 TMR0
 INTCON
OPTION_REG
INTCON
TMR0
 Este é o registro de 8 bits que contém os
valores do temporizador.
 Por default, inicialmente será 0.
 Aumentará em um a cada ciclo de clock.
 Quando atingir 255, acionará o bit
TMR0IF no registro INTCON. Então
novamente começa do 0.
ATIVIDADE
 Crie um programa para mudar o estado lógico da
saída C1 a cada 5ms. Usando o timer0.
ATIVIDADE
 Crie um cronômetro que incrementa a cada um milissegundo. Contendo:
 Um botão pra resetar a contagem.
 Mostrar o valor no LCD
 Mostrar a contagem de:
 Milissegundo
 Segundo
 Minuto
NÃO USAR DELAY
TIMER 1
Fonte: https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-c/timer-tmr1
INTERRUPÇÃO DOTIMER 1
 O par de registros Timer1 (TMR1H:TMR1L) incrementa até FFFFh e passa para 0000h.
 Quando o Timer1 estourar, o bit sinalizador de interrupção Timer1 do registro PIR1 é setado.
 Para habilitar a interrupção, você deve definir estes bits:
 Bit de habilitação de interrupção do Timer1 no registro PIE1
 Bit PEIE do registrador INTCON
 Bit GIE do registrador INTCON
 A flag de interrupção é limpa zerando o bit TMR1IF
REGISTRADORES
 Registradores utilizados pelo TIMER1
 T1CON
 TMR1 (TMRIH, TMRIL)
 PIR1
TIMER 1
TIMER 2
Timer 2 é um temporizador de 8 bits disponível em muitos microcontroladores PIC.
O timer 2 é utilizado para temporização e geração de PWM, entre outros.
TIMER 2
 A (FOSC/4) passa pelo prescaler configurado pelos registradores T2CKPS1 e T2CKPS0.
 A saída do prescaler é então usada para incrementar o registro TMR2 a partir de 00h. Os
valores de TMR2 e PR2 são constantemente comparados e o registro TMR2 continua sendo
incrementado até corresponder ao valor de PR2.
 Quando a correspondência ocorre, o registro TMR2 é automaticamente zerado para 00h.
 O postscaler do temporizador TMR2 é incrementado e sua saída é utilizada para gerar uma
interrupção (TMR2IF) se estiver habilitada.
 Os registros TMR2 e PR2 são totalmente legíveis e graváveis.
 O Timer 2 pode ser desligado zerando o bit TMR2ON.
TIMER 2
ATIVIDADE TIMER 1
 Crie um programa no Mikroc para realizar o acionamento de 1 único injetor numa máquina
de testes. Seguindo as orientações:
 Use um botão para escolher o número de repetições (máximo 100) incrementando de 5
em 5.
 Use um botão para incrementar/decrementar o tempo de injeção, variando entre 2 e 10
ms. Devendo variar com um delta de 1 ms.
 Use um botão para iniciar o teste.
 Exiba no display o número de repetições e o tempo de injeção.

TIMER e Interrupção por Timer no compilador Mikroc

  • 1.
  • 2.
    TIMER  O “TIMER”nada mais é do que um simples contador binário que pode ser configurado para contar pulsos de clock (Interno/Externo).Assim que atingir o valor máximo, ele voltará a zero, configurando um sinalizador OverFlow e gerando a interrupção, se habilitada.  Todos os Timers podem atuar como temporizadores ou servir para a geração de PWM. Lembrando que o timer dois já é por default utilizado na configuração dos pinos CCP1 e CCP2.  O PIC16F877a possui trêsTIMERs.  Timer0 (temporizador de 8 bits)  Timer1 (temporizador de 16 bits)  Timer2 (temporizador de 8 bits)
  • 3.
    CONTADORES BINÁRIOS  Contadorde 8-bits  Incrementa uma unidade a cada período de tempo.  Conta o equivalente a . Portando conta de 0 a 255.  Contador de 16-bits  Conta o equivalente a . Portanto conta de 0 a 65535.
  • 4.
    INTERRUPÇÃO PORTIMER  Quandoo TIMER incrementar e atingir seu valor máximo, 255 (8 bits) ou 65535 (16 bits), ele acionará uma interrupção e se inicializará novamente em 0.  Essa interrupção é chamada de interrupção por timer.
  • 5.
    PRESCALER  Prescaler éo nome da parte de um microcontrolador que divide a FOSC antes de atingir a lógica que incrementa o status do temporizador. Fonte: https://www.mikroe.com/ebooks/pic-microcontrollers-programming-in-c/timer-tmr0
  • 6.
    WATCHDOG Basicamente, o watchdogé um temporizador de supervisão que monitora a operação do microcontrolador. Como Funciona: O watchdog é configurado para um intervalo de tempo específico. Durante a operação normal, o microcontrolador precisa periodicamente resetar o watchdog antes que esse intervalo se esgote. Se o microcontrolador ficar preso em um estado de erro, como um loop infinito ou outra condição anormal que impeça a execução do programa, ele não conseguirá resetar o watchdog a tempo, assim o microcontrolador entra num estado de falha e reinicia o sistema, restaurando a operação normal.
  • 7.
    PRESCALER  O valordo Prescaler é de 2 a 256 e pode ser definido usando o registro OPTION_REG. Como no exemplo abaixo para o timer 0.  O tempo para o estouro do timer depende da FOSC e do prescaler.
  • 8.
    TIMER 0  OmóduloTimer 0 é um temporizador/contador de 8 bits com os seguintes recursos:  Registro temporizador/contador de 8 bits (TMR0)  Pré-escalador de 8 bits (compartilhado com Watchdog Timer)  Fonte de relógio interna ou externa programável  Seleção de borda de clock externa programável  Interrupção em caso de estouro
  • 9.
    TIMER 0  Registradoresusados ​ ​ para o Timer 0  OPTION_REG  TMR0  INTCON
  • 10.
  • 11.
  • 12.
    TMR0  Este éo registro de 8 bits que contém os valores do temporizador.  Por default, inicialmente será 0.  Aumentará em um a cada ciclo de clock.  Quando atingir 255, acionará o bit TMR0IF no registro INTCON. Então novamente começa do 0.
  • 13.
    ATIVIDADE  Crie umprograma para mudar o estado lógico da saída C1 a cada 5ms. Usando o timer0.
  • 14.
    ATIVIDADE  Crie umcronômetro que incrementa a cada um milissegundo. Contendo:  Um botão pra resetar a contagem.  Mostrar o valor no LCD  Mostrar a contagem de:  Milissegundo  Segundo  Minuto NÃO USAR DELAY
  • 15.
  • 16.
    INTERRUPÇÃO DOTIMER 1 O par de registros Timer1 (TMR1H:TMR1L) incrementa até FFFFh e passa para 0000h.  Quando o Timer1 estourar, o bit sinalizador de interrupção Timer1 do registro PIR1 é setado.  Para habilitar a interrupção, você deve definir estes bits:  Bit de habilitação de interrupção do Timer1 no registro PIE1  Bit PEIE do registrador INTCON  Bit GIE do registrador INTCON  A flag de interrupção é limpa zerando o bit TMR1IF
  • 18.
    REGISTRADORES  Registradores utilizadospelo TIMER1  T1CON  TMR1 (TMRIH, TMRIL)  PIR1
  • 19.
  • 20.
    TIMER 2 Timer 2é um temporizador de 8 bits disponível em muitos microcontroladores PIC. O timer 2 é utilizado para temporização e geração de PWM, entre outros.
  • 21.
    TIMER 2  A(FOSC/4) passa pelo prescaler configurado pelos registradores T2CKPS1 e T2CKPS0.  A saída do prescaler é então usada para incrementar o registro TMR2 a partir de 00h. Os valores de TMR2 e PR2 são constantemente comparados e o registro TMR2 continua sendo incrementado até corresponder ao valor de PR2.  Quando a correspondência ocorre, o registro TMR2 é automaticamente zerado para 00h.  O postscaler do temporizador TMR2 é incrementado e sua saída é utilizada para gerar uma interrupção (TMR2IF) se estiver habilitada.  Os registros TMR2 e PR2 são totalmente legíveis e graváveis.  O Timer 2 pode ser desligado zerando o bit TMR2ON.
  • 22.
  • 23.
    ATIVIDADE TIMER 1 Crie um programa no Mikroc para realizar o acionamento de 1 único injetor numa máquina de testes. Seguindo as orientações:  Use um botão para escolher o número de repetições (máximo 100) incrementando de 5 em 5.  Use um botão para incrementar/decrementar o tempo de injeção, variando entre 2 e 10 ms. Devendo variar com um delta de 1 ms.  Use um botão para iniciar o teste.  Exiba no display o número de repetições e o tempo de injeção.