请教:ucos/ii中,指示灯(熄灭、点亮、闪烁)三种状态,具体该如何实现?
1、指示灯可能有三种状态状态1: 指示灯一直熄灭 (例如:压力 < 10MPa 时,指示灯一直熄灭)
状态2: 指示灯一直闪烁 (例如:压力 > 50MPa 时,指示灯一直闪烁)
状态3: 指示灯一直点亮 (例如:10MPa < 压力 < 50MPa 时,指示灯一直点亮)
一般的程序中对于指示灯闪烁是如下解决的:
(1)、 创建一个任务 ,首先点亮指示灯
(2)、 然后延时50ms,
(3)、 然后熄灭指示灯
(4)、 然后延时50ms,
2、但是对于这种“多状态”的指示灯,如何用代码实现?
3、在实际应用中,可能有很多这种“多状态”指示灯,难道要在同一个任务中实现吗? INT8U ledN_status;
task_led()
{
while (1)
{
// 指示灯1有三种状态
for(i=0;i<LedNum;i++)
{
switch (ledN_status)
{
case 0: //状态1 = 熄灭
LED_OFF();// 指示灯熄灭
break;
case 1: //状态2 = 指示灯常亮
LED_ON();// 指示灯点亮
break;
case 2: //状态3 = 指示灯闪烁
LED_ON();// 指示灯点亮
延时50ms;
LED_OFF();// 指示灯熄灭
延时50ms;
break;
}
}
延时50ms;
}
}
请指教,是否可以实现要求的功能。 case 2: //状态3 = 指示灯闪烁
LED_ON();// 指示灯点亮
延时50ms;
LED_OFF();// 指示灯熄灭
//延时50ms; /* 这个删除可以实现*/
break;
页:
[1]