Escolar Documentos
Profissional Documentos
Cultura Documentos
Introdução
Os circuitos fazem uso de cristais e ressonadores para obter um sinal perió-
dico que possibilite uma operação estável. No entanto, apesar de o tempo
entre cada pulso ser fixo, é necessário mais do que isso para cronometrar
sua passagem. Felizmente, a combinação entre clock e contadores, dois
recursos comuns a todos os microcontroladores, é suficiente para criar
um temporizador. Com um sinal de período fixo e um circuito capaz de
efetuar uma contagem com base nesse sinal, o que se tem é a contagem
do próprio tempo. Os temporizadores possuem inúmeras configurações
e são utilizados não somente de maneira direta, mas também para au-
xiliar na operação de outros módulos. Por fim, existem temporizadores
especiais, muitas vezes rígidos, pouco configuráveis, mas que exercem
funções imprescindíveis a um microcontrolador.
Neste capítulo, você aprenderá a identificar os tipos de temporizado-
res, assim como a descrever seu uso e as características de temporizadores
especiais.
2 Temporizadores e contadores
Tipos de temporizadores
Temporizadores e contadores de sistemas digitais são construídos de forma
similar. De modo geral, temporizadores nada mais são que contadores acio-
nados a partir de um circuito de clock, periódico e estável, resultando em uma
contagem com intervalos fixos (SOUZA, 2003).
Um circuito de contagem simples utiliza flip flops tipo T, cuja função é
alternar a saída entre 0 e 1 a cada pulso de clock, sempre que a entrada for 1.
Para isto, basta manter a entrada dos flip flops em 1 e utilizar o pino de
clock para efetuar a contagem. Este tipo de contador é denominado contador
assíncrono, como podemos observar na Figura 1.
Figura 1. (a) Diagrama de blocos de um contador assíncrono de 4 bits e (b) gráfico das
saídas do contador ao longo do tempo.
Fonte: Tokheim (2013, p. 233).
Temporizadores e contadores 3
Utilização de temporizadores
No diagrama de blocos do temporizador Timer 0 do microcontrolador
PIC16F877A é possível notar a presença de uma série de multiplexadores, como
pode se observar na Figura 4. Estes permitem a configuração do temporizador
em frequências e origem de sinal diferentes (MICROCHIP TECHNOLOGY,
2003).
Uma vez concluída a contagem, após o tempo para o qual foi configurado
o temporizador, o mesmo irá interromper o funcionamento até que o flag seja
desligado e seja ordenada uma nova contagem.
Como o temporizador opera detectando o overflow do contador, a confi-
guração do tempo é feita iniciando o registrador do contador (TMR0) com um
valor inicial de contagem para a qual restem apenas a quantidade suficiente
que, considerando a frequência e o fator multiplicador (prescaler) utilizados, se
aproximem ao máximo do tempo requisitado. Para tanto, o registrador TMR0
é acessível ao barramento de dados como os demais endereços de memória.
A frequência com que cada interrupção irá ocorrer é calculada pela Equação
1 (PEREIRA, 2007),
(1)
na qual:
(2)
(3)
(4)
Temporizadores e contadores 9
TMR0 = 6
Temporizadores especiais
Alguns temporizadores têm finalidades mais específicas e direcionadas. É o
caso dos módulos watchdog timer, oscillator start-up timer e power-up timer.
Os temporizadores especiais variam em sua configuração, sendo em alguns
casos de tempo fixo, cabendo ao programador apenas habilitá-los ou não.
Watchdog timer
O watchdog timer (WDT) é um tipo de temporizador utilizado para monitorar
o bom funcionamento do microcontrolador. Para tanto, dispõe de um oscilador
próprio integrado ao microcontrolador. Desta forma, mesmo que o circuito
do oscilador tenha algum problema, a atuação do módulo WDT ainda será
possível (MICROCHIP TECHNOLOGY, 2003).
A operação convencional consiste em reiniciar o microcontrolador sempre
que o temporizador do WDT atingir o valor máximo de contagem. Logo, caso
esta função esteja habilitada, o programador deverá distribuir ao longo do
código instruções que forcem o reinício da contagem do módulo WDT antes
que estoure a contagem.
Esta é uma função muito utilizada em equipamentos de alto grau de risco
ou precisão, em que a menor falha deve ser detectada rapidamente para evitar
maiores danos. O WDT cumpre essa função para os casos em que, qualquer
que seja o motivo, o microcontrolador não está executando o programa da
forma como foi programado.
Com instruções de reinício do WDT em intervalos de tempo suficiente
e estando o microcontrolador funcionando da maneira adequada, não será
atingido o limite da contagem e o microcontrolador não irá reiniciar. Porém,
situações como falha da memória ou interferência elétrica que distorce os
sinais do microcontrolador podem fazer com que o microcontrolador execute
operações aleatórias que não as que foram programadas. Dependendo do tipo
de equipamento, o problema pode ter consequências graves. No entanto, ao
mesmo tempo em que as instruções não estão sendo executadas, também
não será reiniciado o WDT. Assim, após um pequeno intervalo de tempo
de mau funcionamento, espera-se que o WDT coloque o microcontrolador
novamente no início do programa, situação em que o programador precavido
costuma incluir todos os tratamentos necessários para colocar o equipamento
na situação mais segura.
Temporizadores e contadores 11
Power-up timer
O power-up timer (temporizador de energização), ou PWRT, atua assim que
o microcontrolador é alimentado e evita que qualquer função seja executada
antes de um breve intervalo de tempo.
O tempo do PWRT é fixo e calculado de forma a garantir a estabilidade
da alimentação do circuito (MICROCHIP TECHNOLOGY, 2003).
Assim como o WDT, possui oscilador próprio para garantir a operabilidade
e a proteção dos demais componentes, mesmo que estes não estejam em seu
funcionamento normal.
Também só poderá ser acionado ou desativado gravando o programa nova-
mente. Não há qualquer instrução capaz de fazer o microcontrolador alterá-lo
em tempo de execução.
Existem inúmeros outros circuitos que utilizam temporizadores, seja de maneira direta
ou indireta. Um gerador de sinal, por exemplo, necessita de um temporizador para
orientar o momento em que as mudanças devem ocorrer.
Leitura recomendada
WEBER, R. F. Fundamentos de arquitetura de computadores. 4. ed. Porto Alegre: Bookman,
2012. 424 p. (Série Livros Didáticos Informática UFRGS).