Go Down

Topic: [SOLVED] How to do "set and forget" timing in background(not in main loop)? (Read 43 times) previous topic - next topic

Tuppe

EDIT: Found solution. Tone uses Timer2 with interrupts. Sorry for this.

I just noticed that tone() function has a duration parameter, that plays the tone while the program can continue, and the tone stops without any stop command.
http://www.arduino.cc/en/Reference/Tone

What timer is it using to do that? I can even use the tone() in setup() routine once and it works fine without ever checking on it again!

I know that I can time without delay() in the main loop, but I need to have a code to check the timer each loop.

Is there a way to set timers once, just like tone() does, without constantly checking the state with main code?
I need to set some led flashes during a long subroutine(many seconds), so I cannot check the timers in a main loop. I'd need to have the timer check after every single command...

I want to avoid this:
digitalWrite(BUZZ, HIGH);
digitalWrite(LED, 1);
delay(550);
digitalWrite(BUZZ, LOW);
delay(150);
digitalWrite(BUZZ, HIGH);
delay(700);
digitalWrite(BUZZ, LOW);
delay(1000);
digitalWrite(LED, 0);

Thanks for reading!

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy