 	return TEMP_ERROR;
 }
 
+
 void out_relay_state() {
+#ifdef FAST_PORT
+	digitalWriteFast(EXT_CLOCK, LOW);
+	digitalWriteFast(EXT_CLOCK, LOW);
+	shiftOutFast(EXT_DATA_OUT, EXT_CLOCK, MSBFIRST, ~relay_state);
+	digitalWriteFast(EXT_CS, HIGH);
+#else	
 	digitalWrite(EXT_CLOCK, LOW);
 	digitalWrite(EXT_CS, LOW);
 	shiftOut(EXT_DATA_OUT, EXT_CLOCK, MSBFIRST, ~relay_state);
 	digitalWrite(EXT_CS, HIGH);
+#endif	
 }
 
 boolean set_boiler_on () {


	byte i;
	byte present = 0;
	uint8_t addr[8];
	uint8_t data[9];
	char sign;
	set_led_point(true);

}

void setup(void) {
	
#ifdef FAST_PORT
	setup_pc_pwm_any();
	pinModeFast(EXT_CS_IN, OUTPUT);
	pinModeFast(EXT_DATA_IN, INPUT);
	pinModeFast(EXT_CS, OUTPUT);	
	pinModeFast(EXT_CLOCK, OUTPUT);
	pinModeFast(EXT_DATA_OUT, OUTPUT);	
	digitalWriteFast(EXT_CS_IN, HIGH);
	digitalWriteFast(EXT_CS, HIGH);
#else	
	pinMode(EXT_CS_IN, OUTPUT);	
	pinMode(EXT_DATA_IN, INPUT);
	pinMode(EXT_CS, OUTPUT);	
	pinMode(EXT_CLOCK, OUTPUT);
	pinMode(EXT_DATA_OUT, OUTPUT);	
	digitalWrite(EXT_CS_IN, HIGH);
	digitalWrite(EXT_CS, HIGH);
#endif	
	//	pinMode(A2, OUTPUT);
	
	set_boiler_off(FORCE);
	pump_off();
	Serial.begin(9600);
