在void Task_ADC_Sample(void *p_arg) 任务中设置等待信号量 (优先级4)
OSIntEnter();
OSSemPend(&ADC_SEM, //等待ADC信号量
0,
OS_OPT_PEND_BLOCKING,
NULL,
&err);
OSIntExit();
已做延时
OSTimeDlyHMSM(0, 0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
在中断中设置发送信号量
err=OSSemPost(&ADC_SEM, //传送ADC采样信号量 提交任务H所等待的信号量,然后信号量发送给任务H,任务H就绪。任务H获得信号量后继续执行
OS_OPT_POST_1,
&err);
OSTimeDlyHMSM(0, 0,1,0,OS_OPT_TIME_HMSM_STRICT,&err);
printf("\r\n---ADC_SEM post successed!\r\n");
用串口查看printf("\r\n---ADC_SEM post successed!\r\n")成功, printf("\r\n---ADC_SEM Pend successed!\r\n")失败 |