Countdown Timer with milliseconds

Hi,

I try to create a Countdown Timer : mm:ss:sss
I set the minute with the button "5", "8", "10"
I set the timerinterval at "1", for count the milliseconds
but when i clic on "Sart", the millisenconds downcount like a seconds :frowning:

1 Like

Why are you using two clock timers ?

i don't know, i find a video on youtube and i adapt it on milliseconds.

i had delete "timer1"
the probleme is the same

Try this:

You can also set the minutes and seconds from the same Clock1.Now

but I see you want a countdown timer, a bit more work needed for that!

1 Like

Unfortunately, this does not work because the timer component is too sluggish for that. It needs at least 25-30 ms to react.

Try this simple countdown app (with an unreleased extension) that doesn't lose a single millisecond and should also work in background / idle (screen off) mode:

Blocks

1 Like

that's good, thanks.

could you share this extension ?

1 Like

I can very well explain or derive logical sequences. But what I don't understand at all is what is this object or the procedure "PreciseTimerMs1"? Is this a standard object in MIT App'Inventor or do I have to create it anyway? I created a graphic with circled parts, with these purple objects that I just can't find in Inventor circled. I also miss the design view of this program in order to understand the program. It's just a detail, but I've been dwelling on it for hours now without success, it's draining. I also just want to figure out how to program a Bluetooth data transfer without using the slow timer. Because it is so slow that it becomes much too slow and sluggish in the display (line diagram) for 30 to 40 bytes.(Unfortunately I can't attach a picture :-()

Once again it was easy, unexpectedly easy to attach the graphic **

See Countdown Timer with milliseconds - #8 by Anke for where to get that extension, if you feel you need it.

So blöd kam ich mir lange nicht vor, beim tagelangen Versuch, diese [Countdown Timer with milliseconds - #8 by Anke] nachzubauen. :((((( Warum sehe ich denn nicht, was hinter den zugeklappten Bloclen steht? Soll das ein Rätsel werden, einen zur Verzweiflung bringen? Bei läuft keine Zeit im Label, ich weiß nicht, was ich in das Puzzle Millisec eingeben muss. So macht lernen keinen Spaß!

Es ist nun wirklich simpel genug, wenn man es nicht quasi "vorsätzlich" verkompliziert und nun herum schimpft wie ein Rohrspatz - anstatt mal gleich nachzufragen.

Hier hast du es ja einmal richtig gemacht:

Die global millisUntilFinished variable bleibt bei dir ja immer auf "0". Diese Variable ist also überflüssig.

Aber bevor hier wieder etwas schief läuft:
countdown_millis.aia (9.3 KB)

Danke für die aia-Datei. Ich habe immer Probleme mit Blackboxes in Blackboxes. Ein einfaches Aufklappen der zugeklappten Teile hätte genügt. Aber habe es auch ohne den Download der angebotenen aia geschafft, es zum Laufen zu bringen. Allerdings schon bei der ersten Anpassung/Änderung scheitere ich schon wieder. Siehe Bild -> Will nur bei Stop-Aktion nicht auf Anfangsstand zurücksetzen. Geht schief :-/

Ach ja wegen der lokalen Variablenart .... so gehts .... dann trotzdem nicht :frowning:

Nun, um den Countdown (die angezeigte Restzeit) nach dem Drücken auf "Stop" anzuzeigen / zu belassen, reicht es einfach diesen Block wegzulassen. Ich hatte diesen Block dort in meinem Beispiel verwendet, um die Zeit nach dem Stop auf die ursprüngliche Countdown-Dauer zurückzustellen, denn ein Forsetzen des Countdowns ist mit diese Extension-Version nicht möglich, da es in dieser simplen Version keine Pause-Methode gibt.

Ein Countdown lässt sich natürlich auch über die sehr träge Timer component realisieren, indem man die Zeit relegmäßig an die Systemzeit anpasst, sodass es auch einigermaßen akkurat abläuft. Jedoch bestenfalls mit der Genauigkeit im Bereich von Zehntel-Sekunden - aber definitiv nicht Millisekunden.


To show the remaining time displayed after pressing "Stop", it is enough to simply omit this block. I used this block there in my example to reset the time after "Stop" to the original countdown duration, because resuming the countdown is not possible with this extension version, as there is no pause method in this simple extension version.

Of course, a countdown can also be implemented using the lame Clock component by regularly adjusting the time to the system time so that it runs reasonably accurately – however, at best with an accuracy in the range of tenths of a second – but definitely not milliseconds.

Hallo! ich habe die Spielerei mit dem Pausieren jetzt hingekriegt und den Timer so grundsätzlich verstanden. Mein eigentliches Problem ist aber noch ungelöst und ich glaube auch, dass es trotzt des schnellen Timers nicht lösbar ist. Ich will eben 40 Bytes über Bluetooth wenigstens in 200ms übertragen. Das gelingt bisher nicht, weil ja die Abtastrate bei Bluetooth mit angeblich 1ms wesentlich langsamer ist, selbst wenn ich die 40 Bytes "auf einmal" empfange. Ich glaube nicht, dass die Abtastrate sich von einem anderen Timer beeinflussen lässt.

How about if you mentioned that right at the beginning.
Open a new topic for this.