📄 os_serve.h
字号:
void OSTaskResume(uint8 id);
void OSTaskSuspend(uint8 id);
void sleep_ms(unsigned int dly_ms) ;// running task 60000
void sleep_s(unsigned int dly_s) ;
// 任务延时 =============================
void OSTimeDly(unsigned int ticks)
{
if(ticks) //当延时有效
{
OSRdyTbl &= ~(0x01<<OSTaskRunningPrio); //clr it
TCB[OSTaskRunningPrio].OSWaitTick=ticks;
OSSched(); //重新调度
}
}
void sleep_ms(unsigned int dly_ms)
{
if(dly_ms<sys_tick) OSTimeDly(sys_tick);
else OSTimeDly(dly_ms/sys_tick);
}
void sleep_s(unsigned int dly_s)
{
OSTimeDly((dly_s*1000)/sys_tick);
}
//===============================
/*
***********************************************************
*函 数 名: OS_Tasksuspend
*功 能: 将id的任务置为悬挂状态
*输入参数: 要悬挂的任务的id
*输出参数: 无
*返 回 值: 无
*==========================================================
*日 期: 2006.01.01
*作 者: frankie.hu
*修改记录: by pcj 2007.6.23
***********************************************************
*/
void OSTaskSuspend(uint8 id)
{
if (id < OS_TASKS) //检测任务优先级是否有效
{
OSRdyTbl &= ~(0x01<<id); //clr it
if(OSTaskRunningPrio== id)
OSSched(); //重新调度
}
}
/*
***********************************************************
*函 数 名: OS_TaskResume
*功 能: 唤醒任务id
*输入参数: 要唤醒的任务的id
*输出参数: 无
*返 回 值: 无
*==========================================================
*日 期: 2006.01.01
*作 者: frankie.hu
*修改记录: by pcj 2007.6.23
***********************************************************
*/
void OSTaskResume(uint8 id)
{
if (id < OS_TASKS) //检测任务优先级是否有效
{
OSRdyTbl |= (0x01<<id); //使任务可以重新运行
}
}
/*
***********************************************************
*函 数 名: OSIdle
*功 能:
*输入参数:
*输出参数: 无
*返 回 值: 无
*==========================================================
*日 期: 2007.06.23
*作 者: pcj
*修改记录:
***********************************************************
*/
void OSIdle(void)
{
while(1)
{ MouseSev();
set_sleep_mode(SLEEP_MODE_IDLE); //设定为idle模式
sleep_mode();//进入睡眠状态
//cli();
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -