Franzininho DIY – Timer 0 com Interrupção

Nesse exemplo vamos entender como usar a interrupção do Timer0 para verificar o seu overflow.

Nesse exemplo vamos entender como usar a interrupção do Timer0 para verificar o seu overflow. Dessa forma não precisaremos ficar monitorando o flag de overflow no loop principal da aplicação.

Interrupção do Timer0

No exemplo anterior configuramos o Timer0 para operar no modo normal. Para monitora a sua contagem monitoramos o flag TOV0 dentro do loop. Como o Timer é um periférico que funciona independente da CPU podemos habilitar a sua contagem e verificar o overflow através da sua interrupção.

Para habilitar a interrupção do Timer0 devermos colocar 1 no bit TOIE0 no registrador TIMSK:

image 6

Após isso, para que a interrupção realmente ocorra, devemos habilitar a chave global de interrupção através da função sei();

Usando o Timer0 como temporizador com sua interrupção

Vamos fazer a mesma aplicação do exemplo anterior, que é inverter o estado lo LED em intervalos de 1 s. A diferença aqui é que vamos monitorar os overflows do timer através da rotina de interrupção.

A configuração do timer segue a mesma, já que queremos gerar um delay de 1 segundo.

Assim, precisaremos contar a quantidade de interrupções e quando atingir 63, inverteremos o estado do LED.

Recursos necessários

  • Placa Franzininho DIY(com Micronucleus);
  • LED;
  • Resistor de 470 ohm;
  • Jumpers;
  • Computador com as ferramentas de software instaladas.

Circuito

image 7

Código

Note que no loop principal não fizemos nada. Todo o tratamento ficou na interrupção do Timer0.

Simulação do exemplo

Projeto disponível em: https://github.com/Franzininho/exemplos-avr-libc

Outros artigos da série

<< Franzininho DIY – Timer0

Engenheiro, especialista em sistemas embarcados. Hoje é diretor de operações do portal Embarcados, onde trabalha para levar conteúdos de eletrônica, sistemas embarcados e IoT para o Brasil.

Também atua no ensino eletrônica e programação. É entusiasta do movimento maker, da cultura DIY e do compartilhamento de conhecimento, publica diversos artigos sobre eletrônica e projetos open hardware.

Com iniciativas como o projeto Franzininho e projetos na área de educação, leva a cultura maker para o Brasil capacitando e incentivando professores e alunos a usarem tecnologia em suas vidas. Participou da residência hacker 2018 no Red Bull Basement.

Notificações
Notificar
guest
0 Comentários
Inline Feedbacks
View all comments

WEBINAR

Imagens de Ultrassom: Princípios e Aplicações

DATA: 26/10 ÀS 19:30 H