Stránka 2 z 5

Re: Arduino due - millis

Napsal: 16 kvě 2019, 12:44
od KarelBrno
pavel1tu píše:
16 kvě 2019, 10:13
RTC je k ničemu - co jsem měl moduly - jedou jen na jednotky s ? )nebo to je knihovnou co je obsluhuje)
Právě že vůbec nevadí, že jedou jen na sekundy, když chci měřit delší úsek jako je např. 5 minut. Pokud si s každým sekundovým tikem RTC zvýším sekundové počítadlo v programu a zároveň si zapamatuju millis() v době toho tiku, tak pak jsem schopný na milisekundy přesně spočítat čas (nepřesnost millis() v rámci té jedné sekundy bude zanedbatelná).

Re: Arduino due - millis

Napsal: 12 říj 2021, 11:16
od Elkez
Ještě se vrátím ke starému tématu.
RTC modul má výstup 32 K, frekvence sedí, ale Upp pouze 380 mV při napájení +5 V.
Přidám-li pull-up odpor (zkoušel jsem 10k a 1k), nic se nezmění.
Ví někdo, jak použít tento výstup?
Nastavuje se nějak interně?

Re: Arduino due - millis

Napsal: 12 říj 2021, 13:33
od ondraN
A jaký je to modul?

Re: Arduino due - millis

Napsal: 12 říj 2021, 13:43
od Elkez

Re: Arduino due - millis

Napsal: 12 říj 2021, 15:06
od kiRRow
Výstup 32K je třeba povolit na adrese 0Fh bitem EN32kHz

Re: Arduino due - millis

Napsal: 12 říj 2021, 18:15
od Elkez
Je to vlastně jednoduché. Stačí použít příklad z knihovny DS3231, příkazy :
Clock.enable32kHz(on); Clock.enable32kHz(!on);

Re: Arduino due - millis

Napsal: 20 říj 2021, 22:38
od Elkez
Právě že vůbec nevadí, že jedou jen na sekundy, když chci měřit delší úsek jako je např. 5 minut. Pokud si s každým sekundovým tikem RTC zvýším sekundové počítadlo v programu a zároveň si zapamatuju millis() v době toho tiku, tak pak jsem schopný na milisekundy přesně spočítat čas (nepřesnost millis() v rámci té jedné sekundy bude zanedbatelná).
Potřebuji však čas průběžně zobrazovat po 10 ms, takže z modulu dostat nějak 10ms impulsy a ty pak zobrazovat ve tvaru 000:00

Re: Arduino due - millis

Napsal: 21 říj 2021, 15:24
od kiRRow
Frekvence toho výstupu a frekvence oscilátorů pro RTC a jiné oprace s časem je naschvál 32 768. Je to nebližší mocnina čísla 2 nad hranicí (lidem) slyšitelného zvuku. Pokud tuto frekvenci proženeš přes sérii klopných obvodů, tak na 15tém budeš mít přesně 1s impulzy. Stejného efektu dostaneš, pokud každý impuls přičteš do proměnné a budeš hlídat dosažení hodnoty 32767. Pokud chceš impulzy co XXms, musíš si spočítat jakého čísla při frekvenci 32768 dosáhneš za potřebný počet ms.

Re: Arduino due - millis

Napsal: 24 říj 2021, 16:26
od Elkez
32768/100 = 327,68.
Potíž je v tom, že všechny frekvence, které lze dostat z modulu, nejsou dělitelné 100 beze zbytku.
Nepřesnost daná zbytkem degraduje přesnost modulu.

Re: Arduino due - millis

Napsal: 24 říj 2021, 18:02
od pavel1tu
Elkez píše:
20 říj 2021, 22:38
Potřebuji však čas průběžně zobrazovat po 10 ms, takže z modulu dostat nějak 10ms impulsy a ty pak zobrazovat ve tvaru 000:00
10ms nikdo neuvidí - nechápu proč to chceš zobrazovat
nebo jsou myšleny nějaké mezičasy ?

já jsem klasické arduino (NANO, UNO) testoval, asi 500 měření po 1s/10s/100s/1000s - s aktivací vstupu jsem ukládal čas a zároveň z našeho testeru v práci - 20% bylo nad 2% - netuším proč, spíš to bylo jak střelba na holuby
nakonec jsem to udělal na STM32 a druhý kus na RPi PICO - tam je to OK - prostě je to celkově rychlejší CPU včetně zpracování vstupů