Mudanças entre as edições de "MCO018703 2018 2 AULA11"

De MediaWiki do Campus São José
Ir para navegação Ir para pesquisar
Linha 5: Linha 5:
  
  
=Timers do ATmega328=
+
==Timers do ATmega328==
 
   
 
   
  
Linha 20: Linha 20:
  
  
O TIMER1 é utilizado somente em algumas bibliotecas no Arduino específicas, podendo ser utilizado para outras finalidades sem causar muito impacto no funcionamento do restante das funções.
+
O TIMER1 é utilizado somente em algumas bibliotecas no Arduino específicas, podendo ser utilizado para outras finalidades sem causar muito impacto no funcionamento do restante das funções. [1]
 +
 
 +
==Interrupções no Arduino==
 +
 
 +
No Arduino, assim como em qualquer outro microcontrolador, pode-se utilizar interrupções para priorizar ou não tarefas e resolver problemas de tempo (timing).
 +
 
 +
No Arduino, existe a interrupção interna que permite interromper um código, caso o Arduino precise "rodar" o código inteiro sem ser interrompido. E existe a interrupção externa, dada pela portas digitais 2 e 3.
 +
 
 +
Neste tutorial iremos demonstrar apenas a interrupção externa.
 +
 
 +
===Interrupção Externa===
 +
 
 +
O exemplo abaixo demonstra o uso da interrupção externa de forma simples e funcional. O exemplo adotado é o blink (pisca-pisca) com botão utilizando interrupção externa, a figura abaixo mostra a montagem, e, em seguida apresentamos o código fonte.
 +
 
 +
figura
 +
 
 +
 
 +
<syntaxhighlight lang=c>
 +
 
 +
</syntaxhighlight>
  
 
=Referências=
 
=Referências=

Edição das 18h20min de 13 de novembro de 2018

Apresentação

Temporização é fundamental quando se trabalha com circuitos microcontrolados, seja para um simples delay ou para geração de sinais ou eventos periódicos. Todo microcontrolador tem pelo menos um periférico temporizador/contator. Esse periférico possui hardware dedicado para contagem de tempo e o seu correto uso, auxilia em uma programação mais eficiente para realização de diversos projetos.


Timers do ATmega328

O Atmega328, utilizado na placa Arduino UNO, possui 3 timers, sendo dois de 8 bits (TIMER0 e TIMER2) e um de 16 bits (TIMER1). Esses temporizadores são utilizados para diversas funcionalidades, tais como:

  • Temporização;
  • Contagem de eventos externos;
  • Geração de sinais PWM;
  • Interrupções periódicas;
  • Medida de intervalos de pulsos.


Cada temporizador possui características próprias e são utilizados conforme os recursos disponíveis. A biblioteca do Arduino abstrai o uso destes temporizadores em muitas de suas funções. Por exemplos, as funções delay(), millis(), micros(), tone(), analogWrite() utilizam recursos de timers para o funcionamento.


O TIMER1 é utilizado somente em algumas bibliotecas no Arduino específicas, podendo ser utilizado para outras finalidades sem causar muito impacto no funcionamento do restante das funções. [1]

Interrupções no Arduino

No Arduino, assim como em qualquer outro microcontrolador, pode-se utilizar interrupções para priorizar ou não tarefas e resolver problemas de tempo (timing).

No Arduino, existe a interrupção interna que permite interromper um código, caso o Arduino precise "rodar" o código inteiro sem ser interrompido. E existe a interrupção externa, dada pela portas digitais 2 e 3.

Neste tutorial iremos demonstrar apenas a interrupção externa.

Interrupção Externa

O exemplo abaixo demonstra o uso da interrupção externa de forma simples e funcional. O exemplo adotado é o blink (pisca-pisca) com botão utilizando interrupção externa, a figura abaixo mostra a montagem, e, em seguida apresentamos o código fonte.

figura


Referências

[1] https://www.embarcados.com.br/timers-do-atmega328-no-arduino/



Icone voltar.png Icone menu.png Icone prox.png