U32 rt_suspend (void) {
  /* Suspend OS scheduler */
  U32 delta = 0xFFFF;
  
  rt_tsk_lock();
  
  if (os_dly.p_dlnk) {
    delta = os_dly.delta_time;
  }
  if (os_tmr.next) {
    if (os_tmr.tcnt < delta) delta = os_tmr.tcnt;
  }

  return (delta);
}
Beispiel #2
0
U32 rt_suspend (void) {
  /* Suspend OS scheduler */
  U32 delta = 0xFFFFU;
#ifdef __CMSIS_RTOS
  U32 sleep;
#endif

  rt_tsk_lock();
  
  if (os_dly.p_dlnk) {
    delta = os_dly.delta_time;
  }
#ifdef __CMSIS_RTOS
  sleep = sysUserTimerWakeupTime();
  if (sleep < delta) { delta = sleep; }
#else
  if (os_tmr.next) {
    if (os_tmr.tcnt < delta) delta = os_tmr.tcnt;
  }
#endif

  return (delta);
}