1 /******************************************************************************/
3 /* src/lib/libmk/LibMkTimer.c */
5 /* Copyright (C) 2018-2019 Mochi. */
7 /******************************************************************************/
8 /******************************************************************************/
10 /******************************************************************************/
15 #include <MLib/MLib.h>
18 #include <kernel/timer.h>
21 /******************************************************************************/
23 /******************************************************************************/
24 /******************************************************************************/
27 * @details 指定した時間スリープする。
29 * @param[in] usec スリープ時間(マイクロ秒)
30 * @param[out] *pErr エラー内容
32 * - MK_ERR_NO_RESOURCE リソース不足
35 * @retval MK_RET_SUCCESS 成功
36 * @retval MK_RET_FAILURE 失敗
38 * @attention カーネルのtick時間よりも短いスリープ時間を設定した場合、tick時
41 /******************************************************************************/
42 MkRet_t LibMkTimerSleep( uint32_t usec,
45 volatile MkTimerParam_t param;
48 param.funcId = MK_TIMER_FUNCID_SLEEP;
49 param.ret = MK_RET_FAILURE;
50 param.err = MK_ERR_NONE;
54 __asm__ __volatile__ ( "mov esi, %0\n"
58 "i" ( MK_TIMER_INTNO )
62 MLIB_SET_IFNOT_NULL( pErr, param.err );
68 /******************************************************************************/