//blink 2
//Exemple de tâche avec une alternance de fonctions loop()

#include "ordonnanceur.h"

#define pinLed2 13

/*******************************************************************/
/* tache 2                                                         */
/*******************************************************************/
void setup_t2();
tache t2(setup_t2, 1500);

void setup_t2()
{
  Serial_print_millis();
  pinMode(pinLed2, OUTPUT);
  digitalWrite(pinLed2, HIGH);
  Serial.println("ON");
  t2.changerFonction(loop_t2a);
}

void loop_t2a()
{
  Serial_print_millis();
  digitalWrite(pinLed2, LOW);
  Serial.println("OFF");
  t2.changerFonction(loop_t2b);
}

void loop_t2b()
{
  Serial_print_millis();
  digitalWrite(pinLed2, HIGH);
  Serial.println("ON");
  t2.changerFonction(loop_t2a);
}

/*******************************************************************/
/* fonction principales                                            */
/*******************************************************************/

void setup()
{
  Serial.begin(115200);
  ordonnanceur.lancer();
}

void loop() {}

void Serial_print_millis()
{
  Serial.print("millis()=");
  Serial_print_int(millis(), 8);
  Serial.print(", ");
}

void Serial_print_int(uint32_t nombre, uint8_t nb_chiffres)
{
  uint32_t puissancedix = 1;
  for (uint8_t i=1; i<nb_chiffres; i++) puissancedix *= 10;
  while (puissancedix > nombre && puissancedix > 1)
  {
    Serial.print('0');
    puissancedix /= 10;
  }
  Serial.print(nombre);
}