Example #1
1
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;
}
Example #2
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);
	}
}