sleep.c
来自「在AVR 平台下的控制代码,通过CAN控制」· C语言 代码 · 共 48 行
C
48 行
#include "std.h"
#include "sleep.h"
void tdSleep(Word wMilliseconds)
{
Dword t;
t = tdGetTickCount();
while (!tdCompareTickCount(t, wMilliseconds));
}
Bool tdCompareTickCount(Dword dwOriginalTickCount, Word wInterval)
{
Dword t;
t = tdGetTickCount();
if (t - wInterval > t)
{ // overflowed
if (t + 1 + ~dwOriginalTickCount >= wInterval)
return _TRUE_;
else
return _FALSE_;
} else
{
if (t >= dwOriginalTickCount)
{
if (t - wInterval >= dwOriginalTickCount)
return _TRUE_;
else
return _FALSE_;
} else
return _TRUE_;
}
}
/* set the value in ISR */
Dword t_dwTimerCount;
Dword tdGetTickCount(void)
{
Dword t;
// _DI();
t = t_dwTimerCount;
// _EI();
return t;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?