int main(void) // Объявляем функцию которая принимает значение void { SystemInit(); // Настройка и включение кварца (Quarz Einstellungen aktivieren) // ### SystemInit кокофигурируется где то в дебрях system_stm32f4xx.h UB_Button_Init(); // Активация Кнопки (Init der Buttons) UB_Led_Init(); // Активация LEDs (Init der LEDs) // ### UB_Button_Init UB_Led_Init кофигурируется в файлах // ### stm32_ub_button.c stm32_ub_button.h stm32_ub_led.c stm32_ub_led.h UB_Led_On(LED_GREEN); // Включение GREEN СветоДиода (gruene LED einschalten) // ### UB_Led_On кофигурируется в файлах stm32_ub_led.c stm32_ub_led.h while(1) // Открываем цикл { // прорверяем нажата ли кнопка USER (Test ob Button gedruckt ist) if(UB_Button_Read(BTN_USER)==BTN_PRESSED) { // ### UB_Button_Read кофигурируется в файлах stm32_ub_button.c stm32_ub_button.h UB_Led_On(LED_RED); // Включение RED СветоДиода (rote LED einschalten) UB_Led_Off(LED_GREEN); // ### UB_Led_On UB_Led_Off кофигурируется в файлах stm32_ub_led.c stm32_ub_led.h UB_Led_On(LED_ORANGE); UB_Led_Off(LED_BLUE); } else { UB_Led_Off(LED_RED); // Выключение RED СветоДиода (rote LED ausschalten) UB_Led_On(LED_GREEN); UB_Led_Off(LED_ORANGE); UB_Led_On(LED_BLUE); } } }
int main(void) { RTC_STATUS_t check; uint8_t old_sek=0; char buf[APP_TX_BUF_SIZE]; // puffer fuer Datenempfang SystemInit(); // Quarz Einstellungen aktivieren // Init der LEDs UB_Led_Init(); // Init der Buttons UB_Button_Init ( ); // Init und start der RTC check=UB_RTC_Init(); if(check==RTC_UNDEFINED) { // RTC war noch nie initialisiert UB_Led_On(LED_RED); } else { // RTC war schon initialisiert UB_Led_On(LED_GREEN); } // Init vom USB-OTG-Port als CDC-Device // (Virtueller-ComPort) /* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! * die nächste Zeile auskommentieren, * dann funktioniert das Zurücksetzen * des RTC */ UB_USB_CDC_Init(); while ( 1 ) { // wenn Button gedrückt -> RTC zurücksetzen if ( UB_Button_Read ( BTN_USER ) ) { // orange LED ein UB_Led_On ( LED_ORANGE ); // RTC zurücksetzen ResetRTC ( ); // warten bis Button gelöst while ( UB_Button_Read ( BTN_USER ) ); // die LED noch ein Weilchen an lassen Delay ( 10000000 ); UB_Led_Off ( LED_ORANGE ); } // aktuelle RTC-Zeit auslesen UB_RTC_GetClock(RTC_DEC); if(UB_RTC.sek!=old_sek) { // wenn eine Sekunde um ist old_sek=UB_RTC.sek; UB_Led_Toggle(LED_BLUE); // aktuelle Zeit als String formatieren sprintf ( buf, "%02d.%02d.%02d %02d:%02d:%02d", UB_RTC.tag, UB_RTC.monat, UB_RTC.jahr, UB_RTC.std, UB_RTC.min, UB_RTC.sek ); // an Semihosting senden printf ( "%s\r\n", buf ); // Test ob USB-Verbindung zum PC besteht if(UB_USB_CDC_GetStatus()==USB_CDC_CONNECTED) { // an PC senden UB_USB_CDC_SendString ( buf, LFCR ); } } } }