Arduino due - millis

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, ...)
Uživatelský avatar
kiRRow
Příspěvky: 1242
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Arduino due - millis

Příspěvek od kiRRow » 26 říj 2021, 22:03

A víš co due dokáže? To co mu napíšeš, ani o řádek víc :D

Elkez
Příspěvky: 51
Registrován: 03 úno 2021, 07:14

Re: Arduino due - millis

Příspěvek od Elkez » 27 říj 2021, 11:17

je mi celkem jedno jestli se rozjedu požadovaným směrem o 25ms dřív nebo později
co je na displeji mezi start a stop je přece jen orientační
Naprosto souhlasím. Pokud bych se měl vrátit k původnímu problému, tak mi jde v podstatě o dvě věci.
Dlouhodobou stabilitu a přesnost a pak, aby se stopky spustily téměř ihned po startu (v řádu desetin vteřiny), kdy každý může kontrolovat, zda se spustily správně. Zpoždění 1 vteřiny se už pozná. Je jasné, že nebudu zobrazovat ms, displej by stejně nestíhal.
Rovněž přesnost v ms po dobu cca 10 min taky v praxi není zas tak důležitá věc, ale jde mi o to, co lze dostat z Arduina, a pokud by se měly měřit časy řádově desítky minut, chtěl bych, co se týče přesnosti, vyždímat maximum. Jak jsem minule řekl: čistě z profesního hlediska.

ondraN
Příspěvky: 935
Registrován: 08 srp 2019, 20:01

Re: Arduino due - millis

Příspěvek od ondraN » 27 říj 2021, 12:48

Start stopek můžeš signalizovat i akusticky nebo světelně. Pro kontrolu spuštění je ten zvuk asi nejlepší.
Pokud chceš maximální přesnost, asi se nevyhneš použití kalibrovaného externího oscilátoru. Pokud to má fachat venku i uvnitř (velké rozmezí teplot), tak by měl být ten oscilátor i teplotně stabilizovaný. Další cesta je přes použití GPS a nebo DCF77. Tam si můžeš sekundovými pulsy synchronizovat interní hodiny. GPS má obecně problém s příjmem uvnitř budov, takže je to spíš na venkovní použití, DCF77 je na tom uvnitř o dost lépe. Všechno se to odvíjí od požadované přesnosti a prostředí ve kterém to má pracovat. Taky asi nemá smysl bazírovat na řesnosti 1ms/hod, když se to bude spouštět a zastavovat spínačem, protože tam není problém zanést chybu v desetinách sekundy.

Uživatelský avatar
kiRRow
Příspěvky: 1242
Registrován: 07 kvě 2019, 07:03
Bydliště: Opava

Re: Arduino due - millis

Příspěvek od kiRRow » 27 říj 2021, 16:05

V řádu desetin vteřiny ? Pokud bude start/stop tlačítko hardwerově ošetřeno a bude používat přerušení procesoru, tak ty stopky spustíš a zastavíš v řádu mikrovteřin. - EDIT : pokud tuhle část napíšeš v assembleru, tak i v řádech nanosekund
A teď z věštecké koule :
Takže v podstatě stavíš ovládací panel + zobrazovací panel pro nějaký soutěže/zápasy/tělocvičnu. To jestli bude sloužit jen jednomu konkrétnímu účelu, nebo bude umět zobrazovat více sportů, to už tam nevidím.
Externí displej bude velký panel s nějakými zobrazovači a bude někde viset ve vzduchu a komunikovat sním budeš právě těmi RF moduly, takže v podstatě výsledný program poběží na dvou arduinech.
Tak ... a které teď bude měřit čas ?

peterple
Příspěvky: 158
Registrován: 22 zář 2021, 20:20

Re: Arduino due - millis

Příspěvek od peterple » 27 říj 2021, 21:15

Spustenie, štart. Nie je žiadny problém ako píše predošlý príspevok.
Synchronizácia pomocou DCF77 nie je reálne. Ide o amplitúdovú moduláciu. Veľmi náchylné na rušenie. Značky nemajú konštantnú šírku aj z dôvodu kolísania sily príjmu a činnosti AVC.

Rychlá akcia všetko merané s tým istým chrobákom:
Arduino UNO, chyba jak prasa - niekoľko sekund za hodinu
crystaluno.jpg

kontaktné pole, nejaký 12MHz kryštál
crystal2.jpg

kontaktné pole, presný časový kryštál s nastavením. Tá f je 2^22 aby sa to dobre delilo k sekunde.
crystal3.jpg
Prerátanie aká je chyba zobrazovania času, ak je f nastavená s presnosťou na 1Hz (v tomto prípade 0,1Hz) si môže každý vypočítať sám. Samozrejme že to driftuje s teplom. Ale nie je to také strašné. U tých hodín som to robil na pol škody. Aby to pri určitých teplotách bolo nad a potom pod. Takže sa to mierne kompenzovalo. Tie čo nemali automatickú zmenu zimný/letný čas sa nastavovali typicky dvakrát do roka práve vtedy. Novšia verzia zvyčane od výpadku k výpadku. (Nie nebehalo to na arduine, to ešte nebolo na svete a ani žiadna ATMEGA)

Ešte stále máš s niečím problém? Ak áno použi TXCO, dnes sa to dá v pohode kúpiť ani to nestojí veľa. K tomu nemám čo povedať, nikdy som to nepotreboval použiť.

ondraN
Příspěvky: 935
Registrován: 08 srp 2019, 20:01

Re: Arduino due - millis

Příspěvek od ondraN » 28 říj 2021, 07:35

kiRRow píše:
27 říj 2021, 16:05
V řádu desetin vteřiny ? Pokud bude start/stop tlačítko hardwerově ošetřeno a bude používat přerušení procesoru, tak ty stopky spustíš a zastavíš v řádu mikrovteřin. - EDIT : pokud tuhle část napíšeš v assembleru, tak i v řádech nanosekund
..................
Ta časová nejistota neplyne, samozřejmě, z HW a SW. Ta plyne z toho, kdo sedí u tlačítka a mačká ho :mrgreen:
Proto se pro start-stop začaly používat ruzné jiné prvky, než člověk.

Odpovědět

Kdo je online

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