-
IT café
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
A millissel lehet bármekkora időzítést csinálni, csak le kell kezelni a túlcsordulást.
Pl. fél évente hajtja végre az "akciót":void setup() {
}
int tulcsordulas = 0;
unsigned long cel = 15724800; //fél év másodpercben 182*24*60*60
unsigned long start = millis() / 1000;
unsigned long eltelt = 0;
unsigned long reszido = 0;void loop()
{
reszido = millis() / 1000 - start;
if (reszido < 0) //túlcsordult
{
tulcsordulas++;
}
else
{
eltelt = reszido;
}if (tulcsordulas == 1)
{
eltelt += 4294967 - start;
}
if (tulcsordulas > 1)
{
eltelt += 4294967 - start + (tulcsordulas - 1) * 4294967;
}if (eltelt > cel)
{
//akció;
start = millis() / 1000;
tulcsordulas = 0;
eltelt = 0;
reszido = 0;
}
eltelt = 0;
}Nem próbáltam, a fordító nem jelzett hibát.
[ Szerkesztve ]
menyország -> mennyország, akadáj -> akadály, jótálás -> jótállás, Iphoneal > Iphone-nal, kisuly > kisujj, csővet > csövet