millis() valóban panel indulástól fut?

A "60 nap alatt Arduino" tanfolyam házi feladatai és közvetlen témái
Válasz küldése
nemethg
Újonc
Újonc
Hozzászólások: 11
Csatlakozott: 2016. február 6. szombat, 16:47

millis() valóban panel indulástól fut?

Hozzászólás Szerző: nemethg »

Teljesen kezdőként, nem találok választ az alábbi problémámra.
Adott egy egyszerű program, amikor a Serial.println(millis()); utasítással szeretném a soros portra kiíratni a panel indulástól eltelt időt.
Viszont teljesen mindegy mikor indult el a panel, a soros monitor indulástól kezdődően, 0 értékkel kezdve írja ki. Ha bezárom a soros monitort és újra megnyitom, ismét 0-val kezdi.
Próbáltam változókba menteni az értékét és úgy kiiratni, azonos eredménnyel.
Van rá mód, hogy a panel tényleges futási idejét írassam ki??
Előre is köszönet.
Gábor
Avatar
Robert
Elektronbűvölő
Hozzászólások: 10191
Csatlakozott: 2005. december 9. péntek, 7:00

Re: millis() valóban panel indulástól fut?

Hozzászólás Szerző: Robert »

Mivel a sorosport megnyitása _reseteli_ a chipet és indítja a bootloadert.
A resetjumpert vágd át.
Nem fog újraindulni.

DE a programfeltöltéshez is kell a resetjel!

Futásidő mit jelent?
- üzemóraszámláló?
- táp alá helyezés ideje?
vargham
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: millis() valóban panel indulástól fut?

Hozzászólás Szerző: vargham »

Használj olyan soros monitort, amiben ki lehet kapcsolni a DTR-t! Így a csatlakozáskor nem fogja resetelni az Arduino-t.
Ugyanis az Arduino IDE a DTR aktiválásával jelzi a board számára, hogy reseteljen. A DTR (Data Terminal Ready) pedig alapértelmezetten aktív egy soros kapcsolat megnyitásakor, és a legtöbb soros terminál programban nem is lehet állítani. Van néhány kivétel, érdemes azokat használni.
Ilyen például a CoolTerm.
http://freeware.the-meiers.org/
nemethg
Újonc
Újonc
Hozzászólások: 11
Csatlakozott: 2016. február 6. szombat, 16:47

Re: millis() valóban panel indulástól fut?

Hozzászólás Szerző: nemethg »

Köszönöm a válaszokat. Ez a ház szennyízátemelő szivattyú tartályának a magas szint riasztása lenne (+ fáziskimaradás, és egyéb riasztások), élő probléma. Táp alá helyezés idejét szeretném kiíratni, amikor ránézek a paraméterekre.
vargham
Chipgyilok
Hozzászólások: 308
Csatlakozott: 2014. január 8. szerda, 8:32

Re: millis() valóban panel indulástól fut?

Hozzászólás Szerző: vargham »

Szerintem a millis() ilyen feladatra nem lesz jó. Túlcsordulás, stb.
Ha szükséges logolni az eseményeket, akkor RTC + SD kártya.
Ha szükséges, hogy a riasztásról értesülj is, akkor kell valamilyen kommunikációs modul (rádió, ethernet, wifi, stb), amivel értesíteni tud téged.
Ha fontos, hogy magas legyen a rendelkezésre állási idő, akkor külső + belső watchdog.
Hibás esetek kezelése van benne?

És óvatosan! Az Arduino sem hardveresen, sem szoftveresen nem alkalmas non-stop vezérlési üzemre. Nem azt mondom, hogy nem működhet, de van rá esély, hogy valamelyik könyvtárban valami túlcsordul a 27. üzemnapon, és onnantól kezdve nincs szennyvíz szivattyúzás.
nemethg
Újonc
Újonc
Hozzászólások: 11
Csatlakozott: 2016. február 6. szombat, 16:47

Re: millis() valóban panel indulástól fut?

Hozzászólás Szerző: nemethg »

A szivattyú ettől függetlenül működik, ez kizárólag "riasztás", jelzés. A wifi még tervben van, de pillanatnyilag nagy falat lenne tudásban. Majd lassacskán.
Hibás esetek kezelése nincs benne. Pillanatnyilag ledek és berregő. Millis ~49 nap után csordul. A terv, hogy előtte csinál egy reset-et (pin 10 összekötve reset bemenette, ezt aktiválja).
Úgy tűnik jól működik, ahogy pillanatnyilag kész van, a CoolTerm is jó lett DTR OFF-ban. Bár még csak 2 napja van egyben az egész. A programot biztos lehetne egyszerüsíteni, méretet csökkenteni, de én gépész vagyok :)
Folyamatosan megy, led világít. Meglátjuk mennyi ideig bírja a panel.
Válasz küldése