/*----------------------------------------------------------------------------*/
void disp_cmd(u8 key)
{
#if ((monitor == DISP_LCD_12832)  || (monitor == DISP_LCD_12864_SER)  || (monitor == DISP_LCD_12864_PAR))
    {
        lcd_cmd(key);
    }
#elif(monitor == DISP_LED5X7)
    {
        led_cmd(key);
    }
#else
    {
        key = key;
    }
#endif
}
Exemple #2
0
// TODO: error status (megnetometer etc.)
HAL_StatusTypeDef led_loop(state_t current_state) {
	/// State during previous loop.
	static state_t last_state = STATE_INVALID;
	static int32_t cnt = 0;
	static int32_t dir = 1;
	if (current_state != last_state) {
		cnt = 0;
		dir = 0;
	}
	switch (current_state) {
	case STATE_OK_HIGH_TEMP:
		led_cmd(LED_FULL_BRIGHTNESS, 0, 0);
		break;
	case STATE_OK:
		led_cmd(0, LED_FULL_BRIGHTNESS, 0);
		break;
	case STATE_OK_LOW_TEMP:
		led_cmd(LED_FULL_BRIGHTNESS * LED_LOW_TEMP_RED_PERCENT / 100,
				LED_FULL_BRIGHTNESS * (100 - LED_LOW_TEMP_RED_PERCENT) / 100, 0);
		break;
	case STATE_STANDBY:
		cnt += dir;
		if (cnt >= LED_STANDBY_MAX) {
			dir = -LED_STANDBY_STEP;
		}
		if (cnt <= LED_STANDBY_MIN) {
			dir = LED_STANDBY_STEP;
		}
		led_cmd(0, 0, (uint16_t) cnt);
		break;
	case STATE_DISCONNECTED:
		cnt += dir;
		if (cnt >= LED_DISCONNECTED_MAX) {
			dir = -LED_DISCONNECTED_STEP;
		}
		if (cnt <= LED_DISCONNECTED_MIN) {
			dir = LED_DISCONNECTED_STEP;
		}
		led_cmd(0, (uint16_t) cnt, 0);
		break;
	case STATE_ERROR_OVERLOAD:
	case STATE_ERROR_OPEN_LOAD:
	case STATE_INVALID:
	case STATE_LOW_SUPPLY:
	case STATE_HIGH_SUPPLY:
	case STATE_ERROR_HIGH_TEMP:
	case STATE_ERROR_LOW_TEMP:
	default:
		cnt++;
		if (cnt == LED_ERROR_BLINK_TIME) {
			led_cmd(LED_FULL_BRIGHTNESS, 0, 0);
		}
		if (cnt >= LED_ERROR_CYCLE_TIME) {
			cnt = 0;
			led_cmd(0, 0, 0);
		}
		break;
	}
	last_state = current_state;
	return HAL_OK;
}