⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 os_serve.h

📁 在基于avr内核的单片机上实现MP3播放器的功能
💻 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 + -