int main(void){ cli(); RELAY_0_INIT; BUTTON_INIT; buttonStateValue = BUTTON_READ; clunet_set_on_data_received(clunet_data_received); clunet_init(); while(1){ char state = BUTTON_READ; if (state != buttonStateValue){ buttonStateValue = state; if (buttonStateValue){ //buttonResponse(CLUNET_BROADCAST_ADDRESS); switchExecute(0x02); //toggle } } _delay_ms(5); } return 0; }
int main(void){ cli(); DOOR_SENSOR_INIT; doorSensorValue = DOOR_SENSOR_READ; BUTTON_SENSOR_INIT; buttonSensorValue = BUTTON_SENSOR_READ; shouldSendLightnessValue = 0; lightnessSensorValue = -1; ADC_INIT; clunet_set_on_data_received(clunet_data_received); clunet_buffered_init(); clunet_init(); TIMER_INIT; ENABLE_TIMER_CMP_A; //main loop timer 1ms while(1){ if (!clunet_buffered_is_empty()){ cmd(clunet_buffered_pop()); } } return 0; }
int main (void) { clunet_init(); clunet_set_on_data_received(data_received); time_init(); sei(); //eeprom_write_dword((void*)0, 0); record_num = eeprom_read_dword((void*)0); // Читаем кол-во записей mode_current = eeprom_read_byte((void*)4); // Режим mode_temp = eeprom_read_byte((void*)5); // Временный режим disk_initialize(0); unset_bit(DDRA, 3); set_bit(PORTA, 3); // Определение сигнала в линии //unset_bit(DDRA, 4); unset_bit(PORTA, 4); // Открывалка двери, напрямую set_bit(DDRA, 4); unset_bit(PORTA, 4); // Открывалка двери, через реле set_bit(DDRA, 5); HANGUP; // Реле снимания трубки set_bit(DDRA, 6); MODE_NORMAL; // Реле выбора режима unset_bit(DDRG, 0); set_bit(PORTG, 0); // Определение, лежит ли трубка set_bit(DDRD, 6); set_bit(DDRD, 7); // Светодиоды unset_bit(DDRA, 7); set_bit(PORTA, 7); // Счётчик оборотов диска unset_bit(DDRF, 0); // ADC+ unset_bit(PORTF, 0); unset_bit(DDRF, 1); // ADC- unset_bit(PORTF, 1); beep(500, 200); beep(1500, 200); beep(3000, 200); _delay_ms(1000); if (play_wav_pgm(STARTED_WAV) == 0) { LED_GREEN_ON; while (sound_read() >= 0) ; LED_GREEN_OFF; sound_stop(); } else { LED_RED_ON; beep(3000, 200); beep(1500, 200); beep(500, 200); LED_RED_OFF; } send_current_mode(CLUNET_BROADCAST_ADDRESS); while(1) { if (is_LINE_POWER()) incoming_ring(); if (OFFHOOK) control_mode(); transfer_data(); // Передаём данные на досуге. } }
int main(void){ cli(); RELAY_0_INIT; RELAY_1_INIT; RELAY_2_INIT; OWI_Init(OWI_BUS); clunet_set_on_data_received(clunet_data_received); clunet_init(); heatfloor_init( heatfloor_sensor_temperature_request, heatfloor_control_switch_request, heatfloor_systime_request ); heatfloor_set_on_states_message(heatfloor_states_message); heatfloor_set_on_modes_changed(heatfloor_modes_message); heatfloor_set_on_program_changed(heatfloor_program_message); TIMER_INIT; ENABLE_TIMER_CMP_A; while (1){ if (!clunet_buffered_is_empty()){ cmd(clunet_buffered_pop()); } if (systime != hf_time){ hf_time = systime; heatfloor_tick_second(); } } return 0; }