Olá a todos,

Tenho uma simples duvida quanto aos timers do arduino, sei que no UNO temos o 0, 1 e 2. Porem estou com uma aplicação onde estou usando o timer 2, e pretendo usar o 0 e o 1.

A minha duvida é, esses timers vão operar em um período curto a cada overflow, sendo assim, como vai funcionar para os demais? Ex. suponhamos que ocorreu o overflow do timer 2 e ele esta executando determinada tarefa, e antes de finalizar, o timer 1 estoura e logo em seguida o 0. O arduino vai executar timer por timer? e como fica meu codigo no loop infinito?

Valew

Exibições: 224

Responder esta

Respostas a este tópico

Bom dia CH.

Sim o UNO tem 3 "timers"

O Timer0 com tamanho de um 1 byte (de 0x00 até 0xFF), o Timer1 com tamanho de

2 btyes(de 0x00 até 0xFFFF) e o Timer2 com tamanho de 1byte (de 0x00 até 0xFF).

Cada timer funciona de forma independente.

Simplificando:

Eles também tem registradores de pre e pós scaler. Ou seja podem permitir "multiplicação" destes valores.

No firmware do arduino, estes registradores são usado para algumas funções preestabelecidas.

Podem ser usado por exemplos em funções tais como delay(), millis(), micros(), PWM, etc.

Portanto ao usa-los tem-se que levar isto em conta.

O pulso de contqagem destes registradores, poidem ser o clock do arduino, ou mesmo pulsos externo ao arduino.

Cada timer ao chegar no "overflow" gera um interrupt especifico.

Este overflow pode ser usado pra saber que o tempo que vc estabeleceu chegou ao fim.

Você pode ler com muito mais detalhes  sobre timers aqui:

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

RV

valew Mineirin, bom, pelo que eu entendi, ele pode executar a função do outro timer msm antes de terminar de executar o que esta acontecedendo em um outro timer no momento, certo? meio que um "multitarefa"

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço