/** * @brief Mems gyroscope Demo application. * @param None * @retval None */ static void Demo_MEMS(void) { /* Read Gyro Angular data */ Demo_GyroReadAngRate(Buffer); Buffer[0] = (int8_t)Buffer[0] - (int8_t)Gyro[0]; Buffer[1] = (int8_t)Buffer[1] - (int8_t)Gyro[1]; /* Update autoreload and capture compare registers value*/ Xval = ABS((int8_t)(Buffer[0])); Yval = ABS((int8_t)(Buffer[1])); if ( Xval>Yval) { if ((int16_t)Buffer[0] > 40) { /* Clear the LCD */ LCD_Clear(LCD_COLOR_WHITE); LCD_SetTextColor(LCD_COLOR_MAGENTA); LCD_DrawFullRect(100, 40, 40, 120); LCD_FillTriangle(50, 190, 120, 160, 160, 310); Delay(50); } if ((int16_t)Buffer[0] < -40) { /* Clear the LCD */ LCD_Clear(LCD_COLOR_WHITE); LCD_SetTextColor(LCD_COLOR_RED); LCD_DrawFullRect(100, 160, 40, 120); LCD_FillTriangle(50, 190, 120, 160, 160, 10); Delay(50); } } else { if ((int16_t)Buffer[1] < -40) { /* Clear the LCD */ LCD_Clear(LCD_COLOR_WHITE); LCD_SetTextColor(LCD_COLOR_GREEN); LCD_DrawFullRect(120, 140, 100, 40); LCD_FillTriangle(120, 120, 5, 60, 260, 160); Delay(50); } if ((int16_t)Buffer[1] > 40) { /* Clear the LCD */ LCD_Clear(LCD_COLOR_WHITE); LCD_SetTextColor(LCD_COLOR_BLUE); LCD_DrawFullRect(20, 140, 100, 40); LCD_FillTriangle(120, 120, 235, 60, 260, 160); Delay(50); } } }
void GUI_Release(){ // create GUI static int i, j; //indexes //if z-index == 0 eq hide for(j = 1; j < MAX_Z_INDEX; j++ ){ for(i = 0; i < MAX_OBJECTS_Q; i++){ if(GUI_Objects[i].z_index == j){ if(GUI_Objects[i].existance){ LCD_SetColorPixel(GUI_Objects[i].color); // set the font, color of font and the color of line switch(GUI_Objects[i].type){ case LINE_TYPE: LCD_DrawLine(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2], GUI_Objects[i].params[3]); break; case VERTICAL_LINE_TYPE: break; case HORIZONTAL_LINE_TYPE: DrawFastLineHorizontal(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case POLYGON_TYPE: break; case TEXT_STRING: LCD_InitParams(0, GUI_Objects[i].params[6], GUI_Objects[i].color, (sFONT*) GUI_Objects[i].params[5]); LCD_DisplayStringAt(GUI_Objects[i].params[0], GUI_Objects[i].params[1], (uint8_t*)GUI_Objects[i].params[2], (Text_AlignModeTypdef) GUI_Objects[i].params[3], (uint8_t)GUI_Objects[i].params[4]); break; case CIRCLE_TYPE: LCD_DrawCircle(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case FILLED_CIRCLE_TYPE: LCD_DrawFullCircle(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case FILLED_RECT_TYPE: LCD_FillRect(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2], GUI_Objects[i].params[3]); break; case RECT_TYPE: LCD_DrawRect((uint16_t)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1], (uint16_t)GUI_Objects[i].params[2], (uint16_t)GUI_Objects[i].params[3]); break; case IMAGE_FAST_FILL: LCD_Fill_Image((ImageInfo *)GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case IMAGE_WITH_TRANSP: LCD_Fill_ImageTRANSP((ImageInfo *)GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2]); break; case FILLED_TRIANGLE: LCD_FillTriangle(GUI_Objects[i].params[0], GUI_Objects[i].params[1], GUI_Objects[i].params[2], GUI_Objects[i].params[3], GUI_Objects[i].params[4], GUI_Objects[i].params[5]); break; case FILLED_POLY: LCD_FillPolygon((pPoint)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1]); break; case POLY_TYPE: LCD_DrawPolygon((pPoint)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1]); break; case ROTATING_FILLED_POLY_TYPE: StorePoly((pPoint)(GUI_Objects[i].params[0]),(uint16_t)(GUI_Objects[i].params[1])); RotatePoly((pPoint)(GUI_Objects[i].params[0]), (uint16_t)(GUI_Objects[i].params[1]),(pPoint)GUI_Objects[i].params[2], GUI_Objects[i].params[3]); LCD_FillPolygon((pPoint)GUI_Objects[i].params[0], (uint16_t)GUI_Objects[i].params[1]); RestorePoly((pPoint)(GUI_Objects[i].params[0]),(uint16_t)(GUI_Objects[i].params[1])); break; } } } } } }