Você está na página 1de 16

UFCD 6072 – Microcontroladores-N3

Timers

Curso Profissional de Técnico de Eletrónica, Automação e


Instrumentação
Disciplina: Sistemas Digitais

Professor: Rui Nunes


Timers
O timer é um dispositivo de hardware que está
integrado em muitos dos microcontroladores;
É normalmente utlizado para medir tempo;

2 UFCD 6072 – Microcontroladores-N3


Configuração dos timers
Com os timers o mais comum são as configurações da
unidade de tempo e o modo de funcionamento;
As configurações são efetuadas escrevendo em
registos específicos do microcontrolador;

3 UFCD 6072 – Microcontroladores-N3


Timers no Arduíno
O microntrolador no Arduíno Uno é um ATmega328;
Possuí 3 timers (timer0, timer1 e timer2);
O timer0 e o timer2 são timers de 8bits;
O timer1 é um timer de 16 bits;
A diferença entre um de 8 bits e um de 16 bits é a
resolução, ou seja, 8 bits significa 256 níveis e 16 bits
significa 65536 níveis;

4 UFCD 6072 – Microcontroladores-N3


Timers no Arduíno
Todos os timers dependem do sinal de clock do
microcontrolador, que normalmente é de 16MHz.
No firmware do Arduíno normalmente, todos os timers
estão configurados para funcionarem em 1KHz;

5 UFCD 6072 – Microcontroladores-N3


Timers no Arduíno
TIMER0:
É utilizado em funções como delay(), millis() and
micros();
Se alterares a configuração deste timer, estás a alterar o
funcionamento das funções citadas.

TIMER1:
É utilizado na libraria SERVO;

TIMER2:
É utilizado na função tone().
6 UFCD 6072 – Microcontroladores-N3
Configuração dos timers no Arduíno
Registos de configuração:
TCCRxA e TCCRxB: O controle do modo de
operação
TCNTxH e TCNTxL: Registos de armazenamento
de contagem do timer.
OCRx: Registos para comparação de contagem com
o TCNTx. A igualdade pode gerar uma interrupção.
TIMSKx: Registo para habilitar as interrupções
disponíveis do timer.

7 UFCD 6072 – Microcontroladores-N3


Configuração dos timers no
Arduíno

8 UFCD 6072 – Microcontroladores-N3


9 UFCD 6072 – Microcontroladores-N3
Configuração dos timers no
Arduíno

10 UFCD 6072 – Microcontroladores-N3


Configuração dos timers no
Arduíno
Configuração de interrupção por overflow:
TIMSKx |= (1 << TOIEx);
Configuração de interrupção por comparação (CTC
mode):
TIMSKx |= (1 << OCIExA);

11 UFCD 6072 – Microcontroladores-N3


12 UFCD 6072 – Microcontroladores-N3
Exemplo de interrupção por overflow

13 UFCD 6072 – Microcontroladores-N3


Exemplo de interrupção por comparação
(CTC mode)

14 UFCD 6072 – Microcontroladores-N3


Exercício
Alterar o programa do contador para satisfazer os
seguintes requisitos:
O contador passa a ser incrementado/decrementado a
cada 1 segundo, controlado por interrupção do timer1
(implemente com interrupção por overflow e por
comparação)
A opção de incrementar ou decrementar o contador é
definida através dos botões, ou seja, se carregar num
botão o contador passa a incrementar, se carregar no
outro o contador passa a decrementar.

15 UFCD 6072 – Microcontroladores-N3


Bibliografia
https://www.embarcados.com.br/timers-do-atmega328
-no-arduino/

16 UFCD 6072 – Microcontroladores-N3

Você também pode gostar