Countimer a určení sekund pomocí Stringu

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
NCPlyn
Příspěvky: 7
Registrován: 03 led 2019, 19:33
Reputation: 0

Countimer a určení sekund pomocí Stringu

Příspěvek od NCPlyn » 03 led 2019, 19:44

Dobrý večer, dělám jednu věc, která potřebuje zadat čas pomocí keypadu. Keyped mám vyřešen, čas v sekundách mám třeba ve Stringu "sektime".
Problém je v tom, že nedokážu ho dát do příkazu který nastavuje odpočet.

Kód: Vybrat vše

timer.setCounter(0, 0, 30, timer.COUNT_DOWN, onComplete);
Zde potřebuji vyměnit číslo 30 za "sektime", ale nevím jak. Používám tuto knihovnu pro odpočet : https://github.com/inflop/Countimer

Budu rád za každou radu která pomůže :)

Uživatelský avatar
SkullKeep
Příspěvky: 290
Registrován: 23 srp 2017, 18:51
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Countimer a určení sekund pomocí Stringu

Příspěvek od SkullKeep » 03 led 2019, 20:46

Klasicky místo čísla použij proměnou typu např. integer sektime; . Díval jsem se do knihovny a na nastavení odpočtu hodin,minut a sekund je použita proměná typu unsigned int8.
:twisted: :?: :arrow: :geek: P. Q. M.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Countimer a určení sekund pomocí Stringu

Příspěvek od pavel1tu » 03 led 2019, 20:46

To nejde dát místo těch "30" proměnnou ? Já bych si to naprogramoval sám bez knihovny.

On tu je problém, že ten kod je v sekci "Setup()", která se spouští jen po startu arduina.

Mám myšlenku, nevím jestli proveditelnou .....

1) na začátku deklarace proměnné "sektime", třeba s časem 30s - kolik to bude - nedůležité ....
setup()
2) načtení sektime z eeprom, pokud to bude 0, ponechat přednastvených 30s, jinak načíst z eeprom
3) timer.setCounter(0, 0, sektime, timer.COUNT_DOWN, onComplete);
loop()
nastavení z klávesnice
4) nastavit nový čas z klávesnice, pokud jej chceme, uložit do eeprom, počkat 200ms (raději) --> restart Arduina --> Arduino se spustí s novým sektime


5) chod programu s nastaveným časem z eeprom...

Idea dobrá, ale bude to fungovat ?
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

jankop
Příspěvky: 1029
Registrován: 06 zář 2017, 20:04
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: Countimer a určení sekund pomocí Stringu

Příspěvek od jankop » 03 led 2019, 20:50

Třeba nějak takhle

Kód: Vybrat vše

timer.setCounter(0, 0, sektime.toInt() , timer.COUNT_DOWN, onComplete);
nebo takhle:

Kód: Vybrat vše

timer.setCounter(0, 0, sektime.toFloat() , timer.COUNT_DOWN, onComplete);
Netuším, jaký string máš k dispozici, tos nesdělil.
Prostě ten svůj string převedeš na číslo.
Kdyby ses zeptal rovnou na převod stringu na číslo, tak by to bylo každému jasné.

NCPlyn
Příspěvky: 7
Registrován: 03 led 2019, 19:33
Reputation: 0

Re: Countimer a určení sekund pomocí Stringu

Příspěvek od NCPlyn » 03 led 2019, 21:19

Díky všem! Nakonec jsem využil .ToInt() jak tu řekl SkullKeep a jankop. Chtělo to ještě nějakou úpravu kódu ale vše už funguje jak má. dík :)

Uživatelský avatar
gilhad
Příspěvky: 779
Registrován: 07 bře 2018, 11:22
Reputation: 0

Re: Countimer a určení sekund pomocí Stringu

Příspěvek od gilhad » 07 led 2019, 02:11

Mimochodem - nebylo by lepsi rovnou tu hodnotu nacitat jako cislo?

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 11 hostů