Basic timer question

The short answer is enable the three switches in the timer. I find it working this way.
image

1 Like

I tried that but it still isn’t working for me.

Edit weird. Now it’s working.

Sometimes the lag in previewing changes really throws me off.

1 Like

Agree :grin:

So it seems like setting those values in blocks doesn’t work but setting them in the Timer gear menu does. And the timer won’t run at all without Loops set to true.

1 Like

I saw the loop switch is the controlling one. It false then it triggers once, if true it keeps on triggering but just to avoid any other unexplainable situation. I set all to true.

The documentation needs a lot more detail. For example:

Does “Loops” set to true mean that the timer triggers every interval that it’s set to (e.g. once per second)? That’s what I’m assuming but my first instinct is that it mean the timer would reset to 0 after reaching some value (e.g. 60 seconds total) or reset to its starting value once reaching zero if counting down.

The component might better be called something like “metronome”* because the green “Timer1’s Time in seconds” block just vacillates between 0 and 1 when the interval is set to 1 second.

*Although this is probably just my ignorance as a programmer…

3 Likes

@tatiang,

To see how I coded the timer, remix my project and go to the Mitochondria Masher screen.

Hope that helps.

2 Likes

I think so, but I’m not sure.

You can also check the Thunkable Documentation for more info.

Hi there,

If Loops is true, the timer will fire repeatedly.
If Loops is false, then the timer will not continue to fire after it next fires (so I can create a timer, loops = false, it will fire once and no more).
I can clarify this in the docs, but we probably won’t change this property’s name.

I’ll check in with the team about the original topic of the time in [seconds|milliseconds] blocks not returning the expected value.

4 Likes

Yes, this is how I understood it.

That was my explanation.

2 Likes

I appreciate you explaining it as well!

@tatiang I have updated the Timer docs with a more detailed description of the Loops function. Please check it out and let me know what you think!

4 Likes

That’s really cool @jane . Could you also update the Count Up function a little bit? It’s probably just me, but I don’t really understand what Count Up is and how it works.

1 Like

The Time in [seconds|milliseconds] blocks don’t work exactly the way you have programmed them here.

This block will return the remaining time on your Timer’s interval.

So if your Timer’s interval is 5 seconds, this block will count down 4, 3, 2 1, 0.

If your timer’s interval is 1s, and you show this value when the timer fires, it will always show 0, as there are 0 seconds remaining on the Timer.

Here is an example of how your Timer could be set up, and how you would work with it in the blocks:

You can see a project that demonstrates how to use these blocks here

This is now explained in the Timer docs. Thanks for asking about it!

5 Likes

Looks good! Thank you for updating that.

@jane I think the link you posted right above might be a private project. I can’t open it.

3 Likes

Unable to open the project @jane .

1 Like

this is the setup i use that works for me:

  1. from the design tab, set up the timer component to have an interval of 1sec, set it to count down, set loop to true and set enable to false.
  2. before you start the timer, set a variable timer_val to the desired time duration (in seconds); also set enable to true
  3. start (call timer1’s start)
  4. when timer fires (ie. it just counted down 1 sec, as defined in the component setup), then it’s time to reduce the timer_val by 1. when timer_val has gone down to zero it’s time to stop the timer (ie. call timer1’s stop) and set enable to false.
  5. if you set a new variable display_val = timer_val and show it for display, the time will show as counting down.
  6. HOW TO COUNT UP? use the same set up as above but always compute this when timer fires.
    set the display_val = ORIGINAL_DURATION ENTERED MINUS TIMER_VAL
2 Likes

@tatiang @codeswept I apologize! You should be able to access the project now.

4 Likes

Great, thanks @jane !

2 Likes

hello @jane,

I am sorry but I still have so difficulties with the timer.
If I understood the concept, the timer need to be “fired” in order to user the function start and stop.
stop will stop the timer if it is enabled and start will start it again and this until the end of the interval ?

If I want to make a timer that will never stop only on user actions I will need to use the loop to do it ?
thanks for your help
Alex

1 Like

Yes, @alex_ezacae
You are basically correct in your explanation. In most cases you will have both Loop and Enabled to True and will control it with the start/stop blocks. The Fire block is where you will place the code blocks that want them to get executed every time the timer reaches the count in the number of seconds or milliseconds.

1 Like