示例#1
0
void run_tasks()
{
	if(task_flags & task_15ms_flag)
	{

		Page_Event_Handler();
		led_state_machine();
		run_oven_state_machine();
		task_flags &=~task_15ms_flag;

	}

	if(task_flags & task_32ms_flag)
	{
		task_flags &=~task_32ms_flag;
		update_temp();

	}

	if(task_flags & task_62ms_flag)
	{
		if(Get_LED_Timer_Status())
		{
			GLED_Sequence();
			RLED_Sequence();
			BLED_Sequence();
			task_flags &=~task_62ms_flag;
		}

	}


	if(task_flags & task_250ms_flag)
	{

		task_flags &=~task_250ms_flag;
	}

	if(task_flags & task_500ms_flag)
	{
		setColor16(COLOR_16_WHITE);
		get_system_time_string(text_buffer);
		drawString(10,160,text_buffer);
		print_oven_data();
		if(task_flags & graph_update)
		{
			update_graph();
			task_flags &= ~graph_update;
		}

		task_flags &=~task_500ms_flag;
		//RLED_OUT ^= RLED;
	}

}
void loop() {
  led_state_machine();

  if (led_is_ready()) {
    
#if DEBUG
Serial.print("In State: ");
Serial.println(state, DEC);
#endif
     switch(state) {
    case 0:
      display_leds("111111" 
                   "000000" 
                   "000000" 
                   "000000" 
                   "000000"
                   "000000" 
                   "000000" 
                   "000000" 
                   "000000" 
                   "000000");
      break;
    case 1:
      display_leds("100000" 
		   "100000" 
		   "010000" 
		   "010000" 
 		   "001000"
                   "001000" 
                   "000100" 
		   "000100" 
		   "000010" 
                   "000010");
      break;
    case 2:
      display_leds("001000" 
                   "000100" 
                   "000100" 
                   "000010" 
                   "000010"
                   "100000" 
                   "100000" 
                   "010000" 
                   "010000" 
                   "001000");
      break;
    case 3:
      display_leds("111111" 
                   "111111" 
                   "111111" 
                   "111111" 
                   "111111" 
                   "111111" 
                   "111111" 
                   "111111" 
                   "111111" 
                   "111111");
      break;
    default:
      state = 0;
      break;
    }
    if ((millis() - last_change) > 5000) {
      state++;
      last_change = millis();    
    }
  }

}