- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- TCL LCD és LED TV-k
- NVIDIA GeForce RTX 5080 / 5090 (GB203 / 202)
- Vezetékes FÜLhallgatók
- AMD K6-III, és minden ami RETRO - Oldschool tuning
- OLED, Mini-LED, IPS, VA, TN - melyik panelt válaszd 2025-ben?
- OLED TV topic
- Milyen billentyűzetet vegyek?
- NVIDIA GeForce RTX 5070 / 5070 Ti (GB205 / 203)
- Milyen asztali (teljes vagy fél-) gépet vegyek?
-
PROHARDVER!
Arduino hardverrel és szoftverrel foglakozó téma. Minden mikrovezérlő ami arduinoval programozható, és minden arduino program, board, és hardverrel kapcsolatos kérdések helye.
Új hozzászólás Aktív témák
-
gyapo11
őstag
válasz
dave0825 #823 üzenetére
50 napos túlcsordulást hogy oldottad meg?
A lényeg, hogy 50 nap után megint 0-ról indul a millis és ezt kell figyelni.
Pl. óránként kiírom a reset óta eltelt órák számát. 1193-ig nincs gond, a millis megy föl 4294967296-ig, utána 0-val folytatja.
Alapból vizsgálom a millis értékét, hogy van-e már 3600000-rel nagyobb mint az előző óránál eltárolt érték. Ha ezt elérte eltelt egy óra, léptetem az óraszámot és kiírom, az aktuális millist elteszem az előző éréket tároló változóba.
Aztán egyszer csak észreveszem, hogy az aktuális millis értékből kivonva az előző tároltat negatív számot kapok, illetve hogy az aktuális millis kisebb, mint az eltárolt érték. Na ekkor csordult túl. Mi a teendő? Kivonom a maximálisból az előző tárolt értéket, ennyi idő telt el az előző órától a túlcsordulásig.
Pl. az előző tárolt érték legyen 4285563859.
4294967296-4285563859=9403437
Mivel negatív számot nem írhatok az unsigned longba, ezért egy órás ciklus idejére külön kell kezelni, és nem 3600000-at kell elérni, hanem 9403437-tel kevesebbet, mert az már eltelt az előző órától a túlcsordulásig.
Aztán ha ezt elérte, léptetem az óraszámlálót, beírom az előző értékbe az aktuális millist, és minden megy tovább megint 50 napig. -
zka67
őstag
válasz
dave0825 #823 üzenetére
Én nem arduinot használok, de a lényeg szempontjából ez semmin nem változtat. Megszakítást generálok pl. 1ms-enként, és ezt használom időalapnak.
Ha konkrét megoldás is érdekel, írtam egy fejlesztőkörnyezetet a 8051-es mikrokontrollerekhez, ebben megtalálod példaként ezt az órát is:
Turbo51Studio letöltése
Digital clock példaprogram pascal nyelvenA turbo51 studioval ki is tudod próbálni az órát anélkül, hogy meg kellene építened az áramkört:
Az RTC számolja az órát, percet, napot, stb..., az arduino közben csinálhat mást. Amikor tudni akarod, hogy mennyi az idő, kiolvasod az RTC-ből. Magyarul az arduinotól függetlenül méri az időt. Az akku csak annyit csinál, hogy az RTC akkor is méri az időt, amikor az arduino nem kap tápot.
A checksum-ot, az RTC ramot, és az eepromot egyenlőre hagyd figyelmen kívül
Új hozzászólás Aktív témák
- Gyúrósok ide!
- AMD Ryzen 9 / 7 / 5 7***(X) "Zen 4" (AM5)
- exHWSW - Értünk mindenhez IS
- Kazy Computers - Fehérvár - Megbízható?
- Robotporszívók
- TCL LCD és LED TV-k
- Formula-1 humoros
- zebra_hun: Hűthető e kulturáltan a Raptor Lake léghűtővel a kánikulában?
- Samsung Galaxy S24 Ultra - ha működik, ne változtass!
- Hardcore café
- További aktív témák...
- ThinkPad T490 27% 14" FHD IPS i7-8565U 16GB 512GB NVMe ujjlolv IR kam új akku gar
- X1 Tablet Gen3 13" 3K IPS érintő i7-8550U 16GB 512GB NVMe ujjlolv IR kam 4G LTE gar
- Corsair CX750M 750W Moduláris Tápegység
- DJI Mini 3 Fly More Combo drón telefonos távirányítóval
- Core i7 9700 processzor - 6 hó garival
- Napi 1000 -ft tól elvihető RÉSZLETFIZETÉS BANKMENTES MSI Cyborg 15 A13VE
- ÁRGARANCIA!Épített KomPhone Ryzen 7 7800X3D 32/64GB RAM RTX 5070 GAMER PC termékbeszámítással
- ÁRGARANCIA!Épített KomPhone Ryzen 5 5500 16/32/64GB RAM RTX 4060 8GB GAMER PC termékbeszámítással
- Csere-Beszámítás! Custom vizes számítógép játékra! I7 12700KF / RTX 3090 / 32GB DDR5 / 1TB SSD
- BESZÁMÍTÁS! MSI SUPRIM X RTX 4080 16GB videokártya garanciával hibátlan működéssel
Állásajánlatok
Cég: PC Trade Systems Kft.
Város: Szeged
Cég: CAMERA-PRO Hungary Kft
Város: Budapest