int main(void) { RCC_Configuration(); RCC_ClocksTypeDef RCC_Clocks; RCC_GetClocksFreq(&RCC_Clocks); EnableClock(); //LCD_GLASS_Configure_GPIO(); //LCD_GLASS_Init(); SysTick_Config((RCC_Clocks.SYSCLK_Frequency / 2) / 1000); // Cannot exceed 16,777,215 /* Set SysTick Preemption Priority, it's a system handler rather than a regular interrupt */ //NVIC_SetPriority(SysTick_IRQn, 0x04); lcdInit(); lcdClear(); lcdXY( 2, 5 ); lcdStr( "Test"); //lcdBender(); // init rtc RTC_InitTypeDef rtcInit; rtcInit.RTC_HourFormat = RTC_HourFormat_24; rtcInit.RTC_AsynchPrediv = 0x7F; rtcInit.RTC_SynchPrediv = 0xFF; RTC_Init(&rtcInit); RTC_TimeTypeDef RTC_TimeStructure; RTC_DateTypeDef RTC_DateStructure; usart_init(); SetRTCClock(); GPIO_InitTypeDef gpio_btn; gpio_btn.GPIO_Pin = GPIO_Pin_0; gpio_btn.GPIO_Mode = GPIO_Mode_IN; gpio_btn.GPIO_PuPd = GPIO_PuPd_UP; GPIO_Init(GPIOA, &gpio_btn); int prevSecond = -1; while (1) { //uint8_t __status = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0); if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) == 0x00 && !_sent) { _sent = 1; mini_snprintf( strDisp, 22, "20%02d/%02d/%02d %02d:%02d:%02d Hallo !!!", RTC_DateStructure.RTC_Year, RTC_DateStructure.RTC_Month, RTC_DateStructure.RTC_Date, RTC_TimeStructure.RTC_Hours, RTC_TimeStructure.RTC_Minutes, RTC_TimeStructure.RTC_Seconds); SendSMS("0836325001",strDisp); } if (GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_0) != 0x00 && _sent) { _sent = 0; } RTC_GetTime(RTC_Format_BIN, &RTC_TimeStructure ); RTC_GetDate(RTC_Format_BIN, &RTC_DateStructure); if ( RTC_TimeStructure.RTC_Seconds != prevSecond ) { lcdClear(); mini_snprintf( strDisp, 11, "20%02d/%02d/%02d", RTC_DateStructure.RTC_Year, RTC_DateStructure.RTC_Month, RTC_DateStructure.RTC_Date); lcdXY( 0, 0 ); lcdStr( strDisp); mini_snprintf( strDisp, 10, "%02d:%02d:%02d", RTC_TimeStructure.RTC_Hours, RTC_TimeStructure.RTC_Minutes, RTC_TimeStructure.RTC_Seconds ); lcdXY( 0, 1 ); lcdStr( strDisp); //LCD_GLASS_Clear(); //LCD_GLASS_DisplayString( strDisp ); prevSecond = RTC_TimeStructure.RTC_Seconds; } /*if ( usart_available() ) // data available { //usart_print( "Data Available: " ); uint8_t ch = usart_read(); //usart_write(ch); //usart_print( "\r\n" ); SendSMS("836325001","Wynand"); }*/ } return 0; }
static void showMotor(uint8_t motor, uint8_t withDir) { uint8_t x, y; mixer_channel_t *channel = &Config.Mixer[motor]; if (channel->IsMotor) { x = CENTER_X + (channel->Aileron / 4); y = CENTER_Y - (channel->Elevator / 4); lcdLine(x, y, CENTER_X, CENTER_Y); lcdXY(CENTER_X - 2, CENTER_Y - 2); lcdWriteGlyph_P(&glyFC, ROP_COPY); lcdXY(x - 4, y - 4); lcdWriteGlyph_P(&glyBall, ROP_PAINT); lcdXY(x - 4, y - 7); if (channel->Rudder >= 0) lcdWriteGlyph_P(&glyDirCW, ROP_PAINT); else lcdWriteGlyph_P(&glyDirCCW, ROP_PAINT); lcdXY(x - 2, y - 2); lcdReverse(1); lcdSelectFont(&font4x6); lcdWriteChar(motor + '1'); lcdSelectFont(NULL); lcdReverse(0); if (withDir) { lcdSetPos(2, 0); lcdWriteString_P(strDirSeen); lcdSetPos(5, 0); if (channel->Rudder >= 0) lcdWriteString_P(strCW); else lcdWriteString_P(strCCW); } } else if (withDir) { lcdSetPos(3, 64); if (channel->IsServo) lcdWriteString_P(strServo); else lcdWriteString_P(strUnused); } }