diff --git a/Demo_C/Demo/LED/LED.c b/Demo_C/Demo/LED/LED.c index aa9e246..f6bc091 100644 --- a/Demo_C/Demo/LED/LED.c +++ b/Demo_C/Demo/LED/LED.c @@ -9,7 +9,8 @@ static unsigned long cur_time; static unsigned long prev_time; -static enum {GREEN, RED, BLUE} stage; +enum color_pin {GREEN, RED, BLUE}; +enum color_pin pin; static int lamp_idx; static int n_loops; static int wait; @@ -21,7 +22,7 @@ void PrgInit ) { prev_time = 0; - stage = GREEN; + pin = GREEN; lamp_idx = BEG_LAMP_IDX; n_loops = 10; wait = 1000; @@ -46,30 +47,31 @@ int PrgTic if(cur_time-prev_time>=wait) { prev_time = cur_time; - p_ta->output.duty[stage-1] = LIGHT_OFF; - p_ta->output.duty[stage] = LIGHT_MAX; p_ta->hook_table.DisplayMsg(p_ta, NULL); - switch(stage) + switch(pin) { case GREEN: p_ta->hook_table.DisplayMsg(p_ta, "GREEN"); + p_ta->output.duty[BLUE] = LIGHT_OFF; + p_ta->output.duty[GREEN] = LIGHT_MAX; break; case RED: p_ta->hook_table.DisplayMsg(p_ta, "RED"); + p_ta->output.duty[GREEN] = LIGHT_OFF; + p_ta->output.duty[RED] = LIGHT_MAX; break; case BLUE: p_ta->hook_table.DisplayMsg(p_ta, "BLUE"); - break; + p_ta->output.duty[RED] = LIGHT_OFF; + p_ta->output.duty[BLUE] = LIGHT_MAX; default: p_ta->hook_table.DisplayMsg(p_ta, NULL); } - if(++stage>END_LAMP_IDX) + if(++pin>END_LAMP_IDX) { - stage = 0; - p_ta->output.duty[END_LAMP_IDX] = LIGHT_OFF; - // p_ta->output.duty[lamp_idx] = LIGHT_MAX; + pin = GREEN; return rc; } }