举例
//释放计数型信号量任务函数
void SemapGive_task(void *pvParameters)
{
u8 key;
while()
{
key = KEY_Scan(); //扫描按键
if(key == WKUP_PRES)
{
xTaskNotifyGive(SemapTakeTask_Handler); //发送任务通知
}
vTaskDelay(); //延时10ms,也就是10个时钟节拍
}
}
//获取计数型信号量任务函数
void SemapTake_task(void *pvParameters)
{
uint32_t NotifyValue;
while()
{
NotifyValue=ulTaskNotifyTake(pdFALSE,portMAX_DELAY); //获取任务通知
printf("NotifyValue is %d.\r\n", NotifyValue);
vTaskDelay(); //延时1s,也就是1000个时钟节拍
}
}
实验现象