Ejemplo n.º 1
0
int8_t Fan_State_Rep(uint8_t fan, int8_t input) {
	// Wert bearbeiten?
	if (input == MENU_INPUT_PUSH) {
		Fan_edit ^= 1;
		eeprom_write_byte((void*) &Fan_fansE[fan].rep, Fan_fans[fan].rep);
	}
	if (Fan_edit && (input == MENU_INPUT_DOWN)) {
		Fan_fans[fan].rep = (Fan_fans[fan].rep < FAN_REP_MAX) ? (Fan_fans[fan].rep+1) : (FAN_REP_MAX);
	}
	if (Fan_edit && (input == MENU_INPUT_UP)) {
		Fan_fans[fan].rep = (Fan_fans[fan].rep > FAN_REP_MIN) ? (Fan_fans[fan].rep-1) : (FAN_REP_MIN);
	}
	// Ausgabe
	lcd_clear();
	lcd_home();
	if (Fan_edit)
		lcd_data('*');
	else
		lcd_data('>');
	lcd_string_P(MENU_STR_REPEAT);
	lcd_number(Fan_fans[fan].rep, 2, ' ');
	lcd_data('h');
	lcd_setcursor(0, 2);
	lcd_data(' ');
	lcd_string_P(MENU_STR_DURATION);
	lcd_number(Fan_fans[fan].dur, 2, ' ');
	lcd_string_P(MENU_STR_MIN);
	return Fan_edit;
}
Ejemplo n.º 2
0
int8_t Fan_State_Humi(uint8_t fan, int8_t input) {
	// Wert bearbeiten?
	if (input == MENU_INPUT_PUSH) {
		Fan_edit ^= 1;
		eeprom_write_byte((void*) &Fan_fansE[fan].humi, Fan_fans[fan].humi);
	}
	if (Fan_edit && (input == MENU_INPUT_DOWN)) {
		Fan_fans[fan].humi = (Fan_fans[fan].humi < FAN_HUMI_MAX) ? (Fan_fans[fan].humi+1) : (FAN_HUMI_MAX);
	}
	if (Fan_edit && (input == MENU_INPUT_UP)) {
		Fan_fans[fan].humi = (Fan_fans[fan].humi > FAN_HUMI_MIN) ? (Fan_fans[fan].humi-1) : (FAN_HUMI_MIN);
	}
	// Ausgabe
	lcd_clear();
	lcd_home();
	if (Fan_edit)
		lcd_data('*');
	else
		lcd_data('>');
	lcd_string_P(MENU_STR_HUMIDITY);
	lcd_number(Fan_fans[fan].humi, 2, ' ');
	lcd_data('%');
	lcd_setcursor(0, 2);
	lcd_data(' ');
	lcd_string_P(MENU_STR_ONTIME);
	lcd_number(Fan_fans[fan].timeH, 2, ' ');
	lcd_data(':');
	lcd_number(Fan_fans[fan].timeM, 2, '0');
	return Fan_edit;
}
Ejemplo n.º 3
0
int8_t Fan_State_On(uint8_t fan, int8_t input) {
	// Wert bearbeiten?
	if (input == MENU_INPUT_PUSH) {
		Fan_edit ^= 1;
		eeprom_write_byte((void*) &Fan_fansE[fan].timeM, Fan_fans[fan].timeM);
		eeprom_write_byte((void*) &Fan_fansE[fan].timeH, Fan_fans[fan].timeH);
	}
	if (Fan_edit && (input == MENU_INPUT_DOWN)) {
		if (Fan_fans[fan].timeM < 55) {
			Fan_fans[fan].timeM += 5;
		} else if (Fan_fans[fan].timeH < 23) {
			Fan_fans[fan].timeM = 0;
			Fan_fans[fan].timeH++;
		}
	}
	if (Fan_edit && (input == MENU_INPUT_UP)) {
		if (Fan_fans[fan].timeM > 0) {
			Fan_fans[fan].timeM -= 5;
		} else if (Fan_fans[fan].timeH > 0) {
			Fan_fans[fan].timeM = 55;
			Fan_fans[fan].timeH--;
		}
	}
	// Ausgabe
	lcd_clear();
	lcd_home();
	if (Fan_edit)
		lcd_data('*');
	else
		lcd_data('>');
	lcd_string_P(MENU_STR_ONTIME);
	lcd_number(Fan_fans[fan].timeH, 2, ' ');
	lcd_data(':');
	lcd_number(Fan_fans[fan].timeM, 2, '0');
	lcd_setcursor(0, 2);
	lcd_data(' ');
	lcd_string_P(MENU_STR_REPEAT);
	lcd_number(Fan_fans[fan].rep, 2, ' ');
	lcd_data('h');
	return Fan_edit;
}
Ejemplo n.º 4
0
main()
{
DDRC=255;
lcd_init();
int j=0;
int i=99999;
eeprom_write_word(0x001,i);
j=eeprom_read_word(0x001);
lcd_command(0x8f);
lcd_number(j);

}
Ejemplo n.º 5
0
int8_t Fan_State_Back(uint8_t fan, int8_t input) {
	lcd_clear();
	lcd_home();
	lcd_data(' ');
	lcd_string_P(MENU_STR_DURATION);
	lcd_number(Fan_fans[fan].dur, 2, ' ');
	lcd_string_P(MENU_STR_MIN);
	lcd_setcursor(0, 2);
	lcd_data('>');
	lcd_string_P(MENU_STR_BACK);
	return 0;
}
Ejemplo n.º 6
0
int8_t Fan_State_Ctrl(uint8_t fan, int8_t input) {
	// Wert bearbeiten?
	if (input == MENU_INPUT_PUSH) {
		Fan_edit ^= 1;
		eeprom_write_byte((void*) &Fan_fansE[fan].ctrl, Fan_fans[fan].ctrl);
	}
	if (Fan_edit && (input == MENU_INPUT_DOWN)) {
		Fan_fans[fan].ctrl = (Fan_fans[fan].ctrl < FAN_CTRL_MAX) ? (Fan_fans[fan].ctrl+1) : (FAN_CTRL_MAX);
	}
	if (Fan_edit && (input == MENU_INPUT_UP)) {
		Fan_fans[fan].ctrl = (Fan_fans[fan].ctrl > FAN_CTRL_MIN) ? (Fan_fans[fan].ctrl-1) : (FAN_CTRL_MIN);
	}
	// Ausgabe
	lcd_clear();
	lcd_home();
	if (Fan_edit)
		lcd_data('*');
	else
		lcd_data('>');
	lcd_string_P(MENU_STR_CTRL);
	switch (Fan_fans[fan].ctrl) {
		case FAN_CTRL_OFF:
			lcd_string_P(MENU_STR_CTRL_OFF);
			break;
		case FAN_CTRL_HUMI:
			lcd_string_P(MENU_STR_CTRL_HUMI);
			break;
		case FAN_CTRL_TIME:
			lcd_string_P(MENU_STR_CTRL_TIME);
			break;
		case FAN_CTRL_REP:
			lcd_string_P(MENU_STR_CTRL_REP);
			break;
	}
	lcd_setcursor(0, 2);
	lcd_data(' ');
	lcd_string_P(MENU_STR_HUMIDITY);
	lcd_number(Fan_fans[fan].humi, 2, ' ');
	lcd_data('%');
	return Fan_edit;
}
Ejemplo n.º 7
0
int8_t Menu_Root(int8_t input) {
	lcd_clear();
	lcd_home();
	switch (Menu_currState) {
		case MENU_STATE_STATUS:
			lcd_number(Clock_getHour(), 2, '0');
			lcd_data( 0x3A ); // :
			lcd_number(Clock_getMinute(), 2, '0');
			lcd_data( 0x3A ); // :
			lcd_number(Clock_getSecond(), 2, '0');
			lcd_data(' ');
			lcd_string_P(MENU_STR_OCLOCK);
			lcd_setcursor(0, 2);
			static uint8_t blink;
			if (Alarm_wasTriggered() && (blink++ & 4)) {
				lcd_data(LCD_GC_CHAR0);
				lcd_string_P(MENU_STR_ALARM_STATUS);
			} else {
				switch (Sensor_getType()) {
					case SENSOR_TYPE_SEARCHING:
						lcd_string_P(MENU_STR_SEARCHING);
						break;
					default:
					case SENSOR_TYPE_NONE:
						lcd_string_P(MENU_STR_NO_SENSOR);
						break;
					case SENSOR_TYPE_ERROR:
						lcd_string_P(MENU_STR_SENSOR_ERROR);
						break;
					case SENSOR_TYPE_SHT1X:
					case SENSOR_TYPE_HYT131:
						lcd_number(Sensor_getTemp() / 100, 2, '0');
						lcd_data(',');
						lcd_number(Sensor_getTemp() % 100, 2, '0');
						lcd_data( 0xDF ); // °
						lcd_data('C');
						lcd_data(' ');
						lcd_data(' ');
						lcd_data(' ');
						lcd_number(Sensor_getHumi() / 100, 2, '0');
						lcd_data(',');
						lcd_number(Sensor_getHumi() % 100, 2, '0');
						lcd_data('%');
						break;
				}
			}
			break;
		case MENU_STATE_FAN1:
			lcd_data('>');
			lcd_string_P(MENU_STR_FAN1);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_FAN2);
			break;
		case MENU_STATE_FAN2:
			lcd_data('>');
			lcd_string_P(MENU_STR_FAN2);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_FAN3);
			break;
		case MENU_STATE_FAN3:
			lcd_data('>');
			lcd_string_P(MENU_STR_FAN3);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_FAN4);
			break;
		case MENU_STATE_FAN4:
			lcd_data('>');
			lcd_string_P(MENU_STR_FAN4);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_ALARM);
			break;
		case MENU_STATE_ALARM:
			lcd_data('>');
			lcd_string_P(MENU_STR_ALARM);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_CAL);
			break;
		case MENU_STATE_CAL:
			lcd_data('>');
			lcd_string_P(MENU_STR_CAL);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_TIME);
			break;
		case MENU_STATE_TIME:
			lcd_data('>');
			lcd_string_P(MENU_STR_TIME);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_VER);
			break;
		case MENU_STATE_VER:
			lcd_data('>');
			lcd_string_P(MENU_STR_VER);
			lcd_setcursor(0, 2);
			lcd_data(' ');
			lcd_string_P(MENU_STR_BACK);
			break;
		case MENU_STATE_BACK:
			lcd_data(' ');
			lcd_string_P(MENU_STR_VER);
			lcd_setcursor(0, 2);
			lcd_data('>');
			lcd_string_P(MENU_STR_BACK);
			break;
	}
	return 0;
}