diff --git a/Demo_C/Demo/LED/LED.c b/Demo_C/Demo/LED/LED.c index 5ef6e98..3779e45 100644 --- a/Demo_C/Demo/LED/LED.c +++ b/Demo_C/Demo/LED/LED.c @@ -9,7 +9,7 @@ static unsigned long cur_time; static unsigned long prev_time; -static enum {ON_1, PAUSE_1, ON_2, PAUSE_2} stage; +static enum {GREEN, RED, BLUE} stage; static int lamp_idx; static int n_loops; static int wait; @@ -21,7 +21,7 @@ void PrgInit ) { prev_time = 0; - stage = ON_2; + stage = GREEN; lamp_idx = BEG_LAMP_IDX; n_loops = 10; wait = 1000; @@ -46,12 +46,28 @@ int PrgTic if(cur_time-prev_time>=wait) { prev_time = cur_time; - p_ta->output.duty[lamp_idx-1] = LIGHT_OFF; - p_ta->output.duty[lamp_idx] = LIGHT_MAX; - p_ta->hook_table.DisplayMsg(p_ta, "Test"); - if(++lamp_idx>END_LAMP_IDX) + 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) { - lamp_idx = 0; + case GREEN: + p_ta->hook_table.DisplayMsg(p_ta, "GREEN"); + break; + case RED: + p_ta->hook_table.DisplayMsg(p_ta, "RED"); + break; + case BLUE: + p_ta->hook_table.DisplayMsg(p_ta, "BLUE"); + break; + default: + p_ta->hook_table.DisplayMsg(p_ta, NULL); + } + + if(++stage>END_LAMP_IDX) + { + stage = 0; p_ta->output.duty[END_LAMP_IDX] = LIGHT_OFF; // p_ta->output.duty[lamp_idx] = LIGHT_MAX; return rc;