Olá galera,

adaptei este código para um trabalho que estou a fazer em Arduino Uno. Preciso de fazer outra coisa parecida, mas preciso de outro timer? Como posso usar o Timer2?

#include "TimerOne.h"  
void setup() {
pinMode(10, OUTPUT);
Timer1.initialize(1000000);
Timer1.pwm(9, 512);
Timer1.attachInterrupt(callback);
}

void callback() {
digitalWrite(10, digitalRead(10) ^ 1);
}

void loop() { // your program here... }

Exibições: 2997

Responder esta

Respostas a este tópico

Oi DB, boa tarde.

O Atmega328 tem 3 "timers".

O timer0 de 8 bits, o timer1 de 16 bits e o timer2 de 8 bits.

Peripheral Features
– Two 8-bit Timer/Counters with Separate Prescaler 
– One 16-bit Timer/Counter with Separate Prescaler

Não conheço uma biblioteca para os timer0 e timer1.

Mas pode usa-los, fazendo você mesmo a programação deles.

O Atmega 2560 tem  2 de 8 bits e 4 de 16 bits

Peripheral Features

– Two 8-bit Timer/Counters with Separate Prescaler 
– Four 16-bit Timer/Counter with Separate Prescaler

Rui

Dinis,

Não sei o que você precisa, mas fiz uma classe para controle de tasks através do millis(). Se não me engano millis() utiliza o Timer1.

Desculpe a curiosidade, por que você precisa de dois Timer ? É táo precisa assim sua aplicação ?

A diferença entre utilizar interrupt ou o millis() é ter de controlar o tempo você mesmo (com millis()). A interrupt irá dispárar a função callback() com mais precisão.

Mas pelo que eu entendi seu objetivo é trocar o estado de um led a um determinado intervalo de tempo, não é ?

Oi OC, 

A função millis() reinica e provocar um erro de tempo a cada +-49 dias.

Rui

Huuummmmm.... que perereco hein !!!

Não sabia disso

O problema não é a função millis(), o problema é o arduino só usar números de até 32 bits. A função millis() reinicia porque chega no limite do inteiro longo e aí zera de novo.

Se quiser usar o timer2, acabo de disponibilizar uma classe na minha wiki que dá acesso ao timer2 de um jeito bem simples e fácil.

Mais detalhes em: Classe Timer2

Download: Bibliotecas para Arduino

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço