void micromag_read()
{
  if (micromag_status == MM_IDLE) {
    MmSendReq();
  } else if (micromag_status ==  MM_GOT_EOC) {
    MmReadRes();
  } else if (micromag_status ==  MM_DATA_AVAILABLE) {
    micromag_status = MM_IDLE;
  }
}
void micromag_periodic(void)
{

  static uint8_t cnt = 0;

  if (micromag_status == MM_IDLE) {
    //    uint8_t * tab = &cnt;
    //    DOWNLINK_SEND_DEBUG(1,tab);
    cnt = 0;
    MmSendReq();
  } else if (micromag_status ==  MM_GOT_EOC) {
    MmReadRes();
  } else if (micromag_status == MM_WAITING_EOC) {
    cnt++;
    if (cnt > 50) {cnt = 0; micromag_status = MM_IDLE;}
  }
}
static inline void main_periodic_task( void ) {
  static uint8_t cnt = 0;

  if (micromag_status == MM_IDLE) {
    LED_TOGGLE(4);
    //    uint8_t * tab = &cnt;
    //    DOWNLINK_SEND_DEBUG(1,tab);
    cnt = 0;
    MmSendReq();
  }
  else if (micromag_status ==  MM_GOT_EOC) {
    LED_TOGGLE(2);
    MmReadRes();
  }
  else if (micromag_status == MM_WAITING_EOC) {
    cnt++;
    if (cnt > 50) {cnt = 0; micromag_status = MM_IDLE;}
  }

  RunOnceEvery(10, {DOWNLINK_SEND_BOOT(&sys_time.nb_sec);});