Projet domotique

MonTempsDeFct est envoyé sous la forme de 4 octets avec:

octet1 : nb de jour
octet2 : nb d'heure
octet3 : nb de minute
octet4 : nb de seconde

Il s'obtient avec:

byte tempsDeFct[4];
milli2JHMS(millis(),tempsDeFct);
.............
void milli2JHMS(unsigned long depart,byte *JHMS)
{
  /*
  Pour millis() maxi = 4 294 967 295 ((2^32)-1)
  depart = 4294967295
  soit 0x31 0x11 0x02 0x2F ou
  49J 17H 2M 47S
  */
  depart=depart/1000;
  JHMS[0]=depart/86400;
  JHMS[1]=(depart%86400)/3600;
  JHMS[2]=(depart%3600)/60;
  JHMS[3]=depart%60;
}

Cela m'a permis de savoir que millis() revenait à zéro au bout d'un peu plus de 49 jours.

Je ne sais pas si cela me servira, mais dans la foulée j'ai fait la fonction inverse.

unsigned long JHMS2milli(byte JHMS[4])
{
  unsigned long depart=0;
  depart=1000*(JHMS[0]*86400+JHMS[1]*3600+JHMS[2]*60+JHMS[3]);
  return depart;
}