示例#1
0
int main(void)
{

  /* USER CODE BEGIN 1 */
	uint8_t damogranlabs_logo[]={
		0x0F,
		0x13,
		0x11,
		0x11,
		0x0e,
		0x00,
		0x00		
	};
  /* USER CODE END 1 */

  /* MCU Configuration----------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* Configure the system clock */
  SystemClock_Config();

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_USART1_UART_Init();

  /* USER CODE BEGIN 2 */
	LCD_Init(2, 20);
	LCD_CreateChar(0, damogranlabs_logo); 
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
	LCD_PrintString(2, 1, "n: ");
	LCD_PrintNumber(2, 4, -10);
	
	LCD_PrintString(2, 10, "f: ");
	LCD_PrintFloat(2, 13, -326.5635, 5);
	
	while (1)
  {
		LCD_PrintStringWindow(1, 3, 14, 350, "Find us on github and www.damogranlabs.com");
		LCD_Clear();
		LCD_PrintString(1, 1, "www.damogranlabs.com");
		LCD_PutCustom(2, 10, 0);
		LCD_ClearArea(1, 5, 12); 
		HAL_GPIO_TogglePin(LD3_GPIO_Port, LD3_Pin);
		HAL_Delay(2000);
		
		
		
				/* USER CODE END WHILE */

		/* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */

}
示例#2
0
/**
  * @brief  Draw_Menu
  * @param  Menu pointer for draw
  * @retval None
  */
void Draw_Menu(Menu_Struct_TypeDef *Menu)
{
	uint8_t i;

	/* если для меню нужно установить ограничение по отрисовке */
	if(Menu->Clip == ENABLE)
	{
		/* устанавливаем ограничения для отрисовки */
		Set_New_ClipObject(Menu->Coord[0], Menu->Coord[1], Menu->Coord[2], Menu->Coord[3], IN_OBJECT, Menu->ClipObjIndx);
		LCD_ClearArea(Menu->Coord[0] + 2, Menu->Coord[1] + 2, Menu->Coord[2] - 2, Menu->Coord[3] - 2, Active_BackColor);
		Update_Oscillogram();	/* обновлем осциллограммы, для того что бы они "обрезались" по размерам отсечения */
	}

	/* If not (void*)0 */
	if(Menu->MenuCallBack != (void*)0) Menu->MenuCallBack(DRAW);

	/* отрисовываем кнопки */
	for(i = 0; i <= Menu->MaxButton; i++)
	{
		LCD_DrawButton(Menu->Buttons[i], NO_activeButton);
	}

	if(Menu == pMenu)	// если отрисовываемое меню активно тогда отрисовываем активной стартовую кнопку
	{
		setActiveButton(Menu->Buttons[Menu->Indx]);
		LCD_DrawButton(btn, activeButton);
	}
}
示例#3
0
/*******************************************************************************
* Function Name  : ShowMessage
* Description    :
* Input          : *Text
* Return         : None
*******************************************************************************/
void Show_Message(char *Text)
{
	/*  */
	if(TriggShowInfo.Status == DISABLE){ gMessage.Coord[1] = 206; gMessage.Coord[3] = 220; }
	else{ gMessage.Coord[1] = 186; gMessage.Coord[3] = 200; }

	/* Clear if another message now displayed */
	if(gMessage.Visible == TRUE) Clear_Message();

	/* Reset X1 coordinate */
	gMessage.Coord[2] = gMessage.Coord[0];
	memcpy(&chMessage[0], Text, strlen(Text));

	/* Width message text */
	LCD_Strig_PointsWidht((uint16_t*)&gMessage.Coord[2], gMessage.Text);

	/* устанавливаем ограничения для отрисовки */
	Set_New_ClipObject(leftLimit + 1, gMessage.Coord[1], gMessage.Coord[2], gMessage.Coord[3], IN_OBJECT, Message_ClipObj);
	Update_Oscillogram();	// обновлем осциллограммы, для того что бы они "обрезались" по размерам отсечения

	/* Print message */
	LCD_ClearArea(leftLimit + 1, gMessage.Coord[1], gMessage.Coord[2] + 5, gMessage.Coord[3], Active_BackColor);
	LCD_PutColorStrig(gMessage.Coord[0], gMessage.Coord[1], 1, gMessage.Text, gMessage.Color);

	gMessage.TimeOFF = RTC_GetCounter();
	gMessage.TimeOFF += gMessage.TimeShow;
	gMessage.Visible = TRUE;
}
示例#4
0
/*******************************************************************************
* Function Name  : FrequencyMeas_Draw
* Description    :
* Input          :
* Return         : None
*******************************************************************************/
void FrequencyMeas_Draw(Boolean NewState)
{
	uint16_t X0 = rightLimit - 61, Y0 = upperLimit - 33;
	uint16_t X1 = rightLimit - 1, Y1 = upperLimit - 6;

	if(gOSC_MODE.autoMeasurments != OFF) return;

	if((NewState == TRUE) && (ActiveMode != &IntMIN_MAX))
	{
		/* устанавливаем ограничения для отрисовки */
		if(Set_New_ClipObject(X0 - 1, Y0, X1, Y1 + 1, IN_OBJECT, ShowFreq_ClipObj) != ERROR)
		{
			Update_Oscillogram();	// обновлем осциллограммы, для того что бы они "обрезались" по размерам отсечения
			Reset_Calc_Show_Freq();
			LCD_SetGraphicsColor(StillBlue);
			LCD_DrawFillRect(X0, Y0, X1, Y1, 0, 0);
		}
	}
	else
	{
		/* Clear */
		if(Clear_ClipObject(ShowFreq_ClipObj) != ERROR)
		{
			LCD_ClearArea(X0, Y0, X1, Y1, Active_BackColor);
			LCD_DrawGrid(&activeAreaGrid, DRAW);	/* перерисовываем сетку в области осциллограмм */
			Update_Oscillogram();				    /* обновлем осциллограммы */
		}
	}

	gShowFFTFreq = NewState;
}
示例#5
0
/*******************************************************************************
* Function Name  : ShowMessage
* Description    :
* Input          : *Text
* Return         : None
*******************************************************************************/
void Clear_Message(void)
{
	/* Clear */
	LCD_ClearArea(leftLimit + 1, gMessage.Coord[1], gMessage.Coord[2] + 5, gMessage.Coord[3], Active_BackColor);
	Clear_ClipObject(Message_ClipObj);		/* убираем ограничения для отрисовки */
	LCD_DrawGrid(&activeAreaGrid, DRAW);	/* перерисовываем сетку в области осциллограмм */
	Update_Oscillogram();				    /* обновлем осциллограммы */

	memset(&chMessage[0], 0, 50);
	gMessage.TimeOFF = 0;
	gMessage.Visible = FALSE;
}
示例#6
0
/*******************************************************************************
* Function Name  : Draw_Quick_Menu_Buttons
* Description    : Функция включения/выключения меню
* Input          : DRAW/CLEAR - нарисовать/очистить
* Return         : None
*******************************************************************************/
void Clear_Menu(Menu_Struct_TypeDef *Menu)
{
	/* Clear menu clip object and other */
	if(Menu->Clip == ENABLE)
	{
		LCD_ClearArea(Menu->Coord[0], Menu->Coord[1], Menu->Coord[2], Menu->Coord[3], Active_BackColor);
		Clear_ClipObject(Menu->ClipObjIndx);
		LCD_DrawGrid(&activeAreaGrid, DRAW);
		Update_Oscillogram();
	}

	if(Menu->MenuCallBack != (void*)0) Menu->MenuCallBack(CLEAR);
}