int main(void) { char c; // odebrany znak UART_init(); // inicjalizacja portu szeregowego LCD_init(); // inicjalizacja wy�wietlacza LCD LCD_PL_chars_init(); // polskie znaki na wy�wietlaczu LCD KBD_init(); // inicjalizacja klawiatury LED7SEG_init(); // inicjalizacja wy�wietlacza sei(); // w��cz obs�ug� przerwa� while(1) // p�tla niesko�czona { PCF8583_get_time(&godz,&min,&sek,&ssek); LED7SEG_putU08(sek); // wy�wietlaj warto�� if (UART_rxlen()>0) // je�li odebrano znak { c=UART_getchar(); // tu mo�na wstawi� reakcje na komendy steruj�ce np. typu ESC[ LCD_putchar(c); // wy�wietl go na LCD } if (KBD_read()) // je�li naci�ni�to klawisz { if ((KBD_ascii>='A')&&(KBD_ascii<='D')) UART_putstr_P(CURSOR); // sterowanie kursorem UART_putchar(KBD_ascii); // wy�lij go na port szeregowy KBD_wait(); // czekaj na zwolnienie klawisza } } }
//============================================================================= 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(); // Вызываем диспетчер в цикле. } }
//============================================================================= int main(void) { I2C_init(); LED_init(); KBD_init(); RTC_init(); RTOS_init(); RTOS_setTaskFunc(set_blink, 0, 500); // моргание RTOS_setTaskFunc(KBD_scan, 10, 0); // запускаем опрос кнопок sei(); // Разрешили прерывания #if (DEBUG == 1) RTC_set_time(23, 58, 50); // Test time LED_clear(); #endif while (1) { RTOS_dispatchTask(); // Вызываем диспетчер в цикле. } }