OS_SEM SYNC_SEM; //定义一个信号量,用于任务同步
//任务1的任务函数
void task1_task(void *p_arg)
{
OS_ERR err;
while(1)
{
if( Key_Scan(KEY1_GPIO_PORT,KEY1_PIN) == KEY_ON )
{
OSSemPost(&SYNC_SEM,OS_OPT_POST_1,&err);//发送信号量
}
OSTimeDlyHMSM(0,0,0,10,OS_OPT_TIME_PERIODIC,&err); //延时10ms
}
}
//任务2的任务函数
void task2_task(void *p_arg)
{
OS_ERR err;
while(1)
{
OSSemPend(&SYNC_SEM,0,OS_OPT_PEND_BLOCKING,0,&err); //请求信号量
LED1_TOGGLE ; //切换LED1的亮灭状态
OSTimeDlyHMSM(0,0,1,0,OS_OPT_TIME_PERIODIC,&err); //延时1s
}
}
上面是两个任务函数;主要实现功能任务1按下按键、发送信号量。任务2请求到信号量、LED灯亮。我用的是*火的F407板子、没有错误、按照参考书来的、就是实现不了、求助错在哪里???
|