void init(void) { servo_init(); door_init(); if (mqtt_init() != 0) { printf("请检查您的网络!\n"); exit(-1); } debug_print("mqtt init over"); create_doorbell_sound_pipeline(); debug_print("create_doorbell_sound_pipeline"); create_receive_pipeline(); debug_print("create_receive_pipeline"); set_receive_pipeline_playing(); }
int main(void) { wdt_disable(); /* Clear WDRF in MCUSR */ MCUSR &= ~(1<<WDRF); /* Write logical one to WDCE and WDE */ /* Keep old prescaler setting to prevent unintentional time-out */ WDTCSR |= (1<<WDCE) | (1<<WDE); /* Turn off WDT */ WDTCSR = 0x00; DDRC |= 0xC0; eeprom_read_block(&state, &state_ee, sizeof(state)); leds_init(); buttons_init(); adc_init(); power_init(); door_init(); aes_handler_init(); bus_handler_init(); bus_init(); cmd_init(); timer0_init(); sei(); while( 1 ){ if( timer0_timebase ){ timer0_timebase--; bus_tick(); door_tick(); power_tick(); cmd_tick(); buttons_tick(); leds_tick(); } bus_process(); door_process(); power_process(); } }
/* initialize hardware */ void init(void) { led_init(); ledon(); strobo_init(); strobooff(); door_init(); doordisengage(); ring_init(); /* timer initialization * * CTC mode * clocked from system clock * prescaler /1024 * compare value 10 * * this gives about 100 Hz at 1 MHz system clock * * we also enable the compare match interrupt * */ TCNT2 = 0; OCR2 = 10; TCCR2 = _BV(WGM21)|_BV(CS22)|_BV(CS21)|_BV(CS20); TIMSK = _BV(OCIE2); /* initialize usart */ uinit(9600); /* enable interrupts */ sei(); }