/** SenseoControl 2.0 * * File: main.h * Author: Stefan Kalscheuer * Date: 22.04.2013 * * License: GNU GPL v3 (see License.txt) */ // functions for setting and clearing bits #define set_bit(var, bit) ((var) |= (1 << (bit))) #define clear_bit(var, bit) ((var) &= (unsigned)~(1 << (bit))) #define ZERO_CROSSING_w PORTA // zero crossing detection #define ZERO_CROSSING_r PINA #define ZERO_CROSSING_pin 0 #define ZERO_CROSSING_ddr DDRA #define ZERO_CROSSING_adc 0 #define BUTTON_1_CUP_w PORTB // left button #define BUTTON_1_CUP_r PINB #define BUTTON_1_CUP_pin 4 #define BUTTON_1_CUP_ddr DDRB #define BUTTON_2_CUP_w PORTB // right button #define BUTTON_2_CUP_r PINB #define BUTTON_2_CUP_pin 5 #define BUTTON_2_CUP_ddr DDRB #define BUTTON_POWER_w PORTB // power button #define BUTTON_POWER_r PINB #define BUTTON_POWER_pin 6 #define BUTTON_POWER_ddr DDRB #define LED_RED_w PORTA // red LED #define LED_RED_r PINA #define LED_RED_pin 3 #define LED_RED_ddr DDRA #define LED_RED_ON 0 #define LED_RED_BLINK 1 #define LED_GREEN_w PORTA // green LED #define LED_GREEN_r PINA #define LED_GREEN_pin 1 #define LED_GREEN_ddr DDRA #define LED_GREEN_ON 2 #define LED_GREEN_BLINK 3 #define LED_BLUE_w PORTA // blue LED #define LED_BLUE_r PINA #define LED_BLUE_pin 2 #define LED_BLUE_ddr DDRA #define LED_BLUE_ON 4 #define LED_BLUE_BLINK 5 #define SENSOR_MAGNET_w PORTA // hall switch (water) #define SENSOR_MAGNET_r PINA #define SENSOR_MAGNET_pin 5 #define SENSOR_MAGNET_ddr DDRA #define SENSOR_MAGNET_adc 4 #define WATER_LOW 30 // ADC threshold for low water #define WATER_OK 100 // ADC threshold for water OK #define SENSOR_TEMP_w PORTA // NTC (temperature) #define SENSOR_TEMP_r PINA #define SENSOR_TEMP_pin 4 #define SENSOR_TEMP_ddr DDRA #define SENSOR_TEMP_adc 3 #define OPERATING_TEMPERATURE 115 // ADC threshold for water temperature #define TRIAC_BOILER_w PORTA // boiler triac #define TRIAC_BOILER_r PINA #define TRIAC_BOILER_pin 6 #define TRIAC_BOILER_ddr DDRA #define TRIAC_PUMP_w PORTA // pump triac #define TRIAC_PUMP_r PINA #define TRIAC_PUMP_pin 7 #define TRIAC_PUMP_ddr DDRA #define AUTO_OFF_THRESHOLD 180 // AutoOff threshold (seconds) #define BUTTON_CLEAN_THR 30 // button threshold for cleaning mode (ms) #define BUTTON_THRESHOLD 100 // button threshold (ms) #define BUTTON_LONG_THR 1500 // button threshold for long time push (ms) // prototypes: void init(); // initialization void power_off(); // power off to sleep mode bool get_water(); // update water state bool get_temperature(); // update tehmerature state unsigned int detect_zero_crossing(); // detect zero crossing