/* Hardware initialization */ static void hwInit(void) { extFunc = eeprom_read_byte((uint8_t*)EEPROM_EXT_FUNC); #if 0 loadTempParams(); if (extFunc == USE_DS18B20) { ds18x20SearchDevices(); tempInit(); /* Init temperature control */ } #endif I2CInit(); /* I2C bus */ displayInit(); /* Load params and text labels before fb scan started */ rcInit(); /* IR Remote control */ inputInit(); /* Buttons/encoder polling */ adcInit(); /* Analog-to-digital converter */ sei(); /* Gloabl interrupt enable */ //tunerInit(extFunc); /* Tuner */ DDR(STMU_STBY) |= STMU_STBY_LINE; /* Standby port */ DDR(STMU_MUTE) |= STMU_MUTE_LINE; /* Mute port */ sndInit(extFunc); /* Load labels/icons/etc */ setStbyTimer(0); return; }
//============================================================================= int main(void) { LIGHT_init(); LCD_init(); LIGHT_on(); LCD_clear(); BEEP_init(); RTC_init(); RTOS_init(); RC5_Init(); RC5_Reset(); ENC_init(); KBD_init(); bmp180Init(); dht22Init(); rda5807Init(); rda5807PowerOn(); rda5807SetMute(1); ds18x20SearchDevices(); LCD_goto(0, 0); LCD_puts("POGODNAY STATION"); LCD_goto(0, 1); LCD_puts(" VERSION 1.0 "); _delay_ms(1000); LCD_clear(); LCD_load_bignum(); ds18x20Process(); if (bmp180HaveSensor()) bmp180Convert(); dht22Read(); #if (DEBUG == 1) if ((BUT_1_PINX & (1<<(BUT_1_PIN))) == 0) { _delay_ms(100); if ((BUT_1_PINX & (1<<(BUT_1_PIN))) == 0) { RTOS_setTask(EVENT_SET_STATE_OPTION, 0, 0); BEEP_beep(); while (((BUT_1_PINX & (1<<(BUT_1_PIN))) == 0)) { } BEEP_beep(); } } #else RTOS_setTask(EVENT_SET_STATE_OPTION, 0, 0); BEEP_beep(); #endif RTOS_setTaskFunc(set_blink, 0, 1000); // моргание RTOS_setTaskFunc(KBD_scan, 0, 5); // запускаем опрос кнопок RTOS_setTaskFunc(ENC_poll, 0, 1); // запускаем опрос енкодера RTOS_setTaskFunc(RC5_scan, 0, 5); // запускаем опрос RC5 RTOS_setTask(EVENT_SET_SHOW, 0, 0); // запуск шоу sei(); // Разрешили прерывания while(1) { RTOS_dispatchTask(); // Вызываем диспетчер в цикле. } }
void hwInit(void) { _delay_ms(250); ds18x20SearchDevices(); bmp180Init(); dht22Init(); displayInit(); mTimerInit(); matrixScrollAndADCInit(); alarmInit(); rtc.etm = RTC_NOEDIT; sei(); return; }