počítání Arduinem generovaných impulsů na výstupu

Odpovědět
HrAd
Příspěvky: 35
Registrován: 12 říj 2017, 22:45
Reputation: 0

počítání Arduinem generovaných impulsů na výstupu

Příspěvek od HrAd » 05 kvě 2019, 20:33

Jak by jste řešili počítání impulsů na výstupu Arduina po dobu kdy bude zmáčknute tlačítko a současně zaznamenávali čas po který bylo tlačítko zmáčknuté?
Lze to vůbec klasickým Wiringem?
Mé zkušenosti jsou malé, ale předpokládám že nikoliv.
Jak by jste to řešily co nejednodušeji a jakými prostředky-funkcemi?
Konstrukce je jasná:
1. testuji ON a OFF tlačítka
2. po dobu kdy je ON generuji impulzy na výstupný pin
3. generované impulzy počítám
4. zaznamenávám čas od ON do OFF

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

Re: počítání Arduinem generovaných impulsů na výstupu

Příspěvek od jankop » 05 kvě 2019, 21:12

Záleží na rozlišení, které ovšem nezmiňuješ. Když budu generovat pulzy v nějakém časovém intervalu, tak je nebudu počítat, protože budu vědět, kolik jsem jich vygeneroval. Je opravdu rozdíl, řešit 10 impulzů za minutu nebo 12 687impulzů za sekundu..

HrAd
Příspěvky: 35
Registrován: 12 říj 2017, 22:45
Reputation: 0

Re: počítání Arduinem generovaných impulsů na výstupu

Příspěvek od HrAd » 05 kvě 2019, 21:24

je to skoro v tom rozsahu :-(
počítejme někde kolem 1 Hz - 15 kHz

Wojta
Příspěvky: 184
Registrován: 22 črc 2017, 16:39
Reputation: 0

Re: počítání Arduinem generovaných impulsů na výstupu

Příspěvek od Wojta » 06 kvě 2019, 18:33

Tak teď ještě rozlišení jak říká jankop, jak přesně musí být pulzy časované. Další věc je zda chceš mít program čistě na tohle a nebo bude program krom generování a měření dělat ještě něco jiného. Chceš použít knihovny nebo se opravdu držet jen fcí v arduinu (ten čirý wiring)? Tyhle věci se dají udělat na tisíc způsobů. Na prasáka před digitalWrite a delay, zneužitím funkcí jako tone, knihovnami pro časování s přerušeními atd... :D

HrAd
Příspěvky: 35
Registrován: 12 říj 2017, 22:45
Reputation: 0

Re: počítání Arduinem generovaných impulsů na výstupu

Příspěvek od HrAd » 06 kvě 2019, 21:13

Je mne jasné že čim níže k HW (strojáku) tím vše bude přesnější, ale take složitější...
Jde jenom o teoretickou úvahu jak by jste to řešili řekněme a s jakýmí vlastnostmi-neřestmi by to které řešeni bylo:
- pouze ve wiringu
- wiring s použitím knihoven
- třeba C a k tomu stroják

Ja si na hraní zatim zvolil 2. variantu s první knihovnou co mne přišla pod ruku konkrétně TimeOne a krmím tím krokáč ať vidím zda jede či ne.

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

Re: počítání Arduinem generovaných impulsů na výstupu

Příspěvek od gilhad » 07 kvě 2019, 04:20

Záleží na tom, proč to vůbec chceš (a jak přesné to musí být).

15 kHz na 20MHz stroji je víc než 1.000 instrukcí / impulz.
člověk má reakční dobu docela pomalou (pod 0.1s se asi nedostaneš), takže pokud ti mačká tlačítka člověk, tak je to s přesností na 1.000 a víc pulzů.

Nicméně já bych na to šel tak, že bych si nastavil časovač na správnou frekvenci a pověsil interrupt na změnu toho pinu - tak bych měl přesný počet pulzů, interrupt zvládá v pohodě ( a netřeba se o něj moc starat), navíc klidně si tam dám bytovou proměnnou jako counter, když přeteče, zvednu další, která počítá násobky 256 (čili vyšší řády) a ušetřil spoustu času na počítání s dlouhýma číslama.

nastavil interrupt na tlačítko ON, při spuštění bych uložil čas, vynuloval counter(y), nastavil příznak běhu, spustil timer a tento interrupt disabloval a nastavill místo toho interrupt na tlačítko OFF.
interrupt tlačítka OFF by zastavil timer, shodil příznak běhu a přehodil interrupt na tlačítko ON.

Přesné výsledky, přehled o okamžitém stavu a loop() volná pro užitečnou činnost.

Odpovědět

Kdo je online

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