void DrawMessageWindow(char* message_line1, char* message_line2, char* message_line3, char buttons) { SetFont(SMALL_FONT); LcdSetColor(WHITE); LcdRect(5, 9, 123, 54); LcdSetColor(BLACK); LcdLine(6, 9, 122, 9); LcdLine(6, 55, 122, 55); LcdLine(4, 11, 4, 53); LcdLine(124, 11, 124, 53); LcdLine(5, 10, 5, 10); LcdLine(5, 54, 5, 54); LcdLine(123, 10, 123, 10); LcdLine(123, 54, 123, 54); LcdBmp(6, 26, BMP_EXLAMATION_WIDTH, BMP_EXLAMATION_HEIGHT, bmp_exlamation); //LcdBmp(6, 26, BMP_KEY_INPUT_WIDTH, BMP_KEY_INPUT_HEIGHT, bmp_key_input); LcdText(29, 12, 122, 18, message_line1); LcdText(29, 21, 122, 27, message_line2); LcdText(29, 30, 122, 36, message_line3); if(buttons & MB_OK) DrawButton(29, 40, BTN_OK, mw_focus == 0); if(buttons & MB_CANCEL) DrawButton(75, 40, BTN_CANCEL, mw_focus == 1); };
void slide_down() { uint8_t i; for(i=1;i<6;i++) { LcdClearLine(i+1); LcdRectangle(0,8,83,(i+1)*8,TRANSPARENT); if(i==5) LcdLine(0,47,83,47,PIXEL_ON); delay_ms(50); } }
void VBatQuant() { /* Start ADC2 Software Conversion */ /* Test EOC flag */ while(ADC_GetFlagStatus(ADC2, ADC_FLAG_EOC) == RESET); /* Get ADC2 converted data */ int adcValue = ADC_GetConversionValue(ADC2); //Не задерживаем вывод на экран. Батарейка все равно медленно разряжается, поэтому показываем старое значение ADC_StartConversion(ADC2); const int Vup = 3080;//6.2 V const int Vdown = 2730;//5.5 V int value = 0; //Vup->6.5 Vdown->0 value = adcValue-Vdown; if(value<0) value = 0; value = (value*65)/(10*(Vup-Vdown)); //Draw battery byte x0 = 63, y0 = 0; LcdLine(x0, x0, y0+1, y0+7, PIXEL_ON ); LcdLine(x0+1, x0+3, y0+1, y0+1, PIXEL_ON ); LcdLine(x0+1, x0+3, y0+7, y0+7, PIXEL_ON ); LcdLine(x0+3, x0+3, y0+1, y0+0, PIXEL_ON ); LcdLine(x0+3, x0+3, y0+7, y0+8, PIXEL_ON ); LcdLine(x0+3, x0+19, y0+0, y0+0, PIXEL_ON ); LcdLine(x0+3, x0+19, y0+8, y0+8, PIXEL_ON ); LcdLine(x0+20, x0+20, y0+0, y0+8, PIXEL_ON ); if(value>5) LcdSingleBar( x0+2, y0+3+3, 3, 2, PIXEL_ON ); for(byte i=0; i<5; i++) { if(value>4-i) LcdSingleBar( x0+5+i*3, y0+3+4, 5, 2, PIXEL_ON ); } }
void DrawParamScreen(void) { SetFont(SMALL_FONT); LcdText(1, 0, 118, 7, screens[ps_screen].header); LcdLine(0, 8, 127, 8); LcdLine(0, 9, 127, 9); LcdLine(0, 20, 127, 20); LcdLine(0, 31, 127, 31); LcdLine(0, 42, 127, 42); LcdLine(0, 53, 127, 53); //LcdLine(0, 54, 127, 54); LcdLine(42, 10, 42, 52); LcdLine(86, 10, 86, 52); LcdLine(119, 0, 119, 7); if(GetPasswordEntered()) LcdText(121, 1, 127, 7, "P"); LcdText(1, 11, 41, 18, GetNameByTag(screens[ps_screen].var1)); if(ps_focus == 0) { LcdSetColor(BLACK); LcdRect(43, 10, 85, 19); LcdSetColor(WHITE); }; LcdText(44, 11, 85, 18, "9234.567"); LcdSetColor(BLACK); LcdText(88, 11, 127, 18, GetUnitByTag(screens[ps_screen].var1)); LcdText(1, 22, 41, 29, "variabl2"); if(ps_focus == 1) { LcdSetColor(BLACK); LcdRect(43, 21, 85, 30); LcdSetColor(WHITE); }; LcdText(44, 22, 85, 29, "9234.567"); LcdSetColor(BLACK); LcdText(88, 22, 127, 29, "some_tx2"); LcdText(1, 33, 41, 40, "variabl3"); if(ps_focus == 2) { LcdSetColor(BLACK); LcdRect(43, 32, 85, 41); LcdSetColor(WHITE); }; LcdText(44, 33, 85, 40, "9234.567"); LcdSetColor(BLACK); LcdText(88, 33, 127, 40, "some_tx3"); LcdText(1, 44, 41, 51, "variabl4"); if(ps_focus == 3) { LcdSetColor(BLACK); LcdRect(43, 43, 85, 52); LcdSetColor(WHITE); }; LcdText(44, 44, 85, 51, "9234.567"); LcdSetColor(BLACK); LcdText(88, 44, 127, 51, "some_tx4"); //control buttons /* if(ps_focus == 4) { LcdSetColor(BLACK); LcdRect(0, 55, 41, 63); LcdSetColor(WHITE); }; LcdText(1, 56, 41, 63, "Назад"); LcdSetColor(BLACK); if(ps_focus == 5) { LcdSetColor(BLACK); LcdRect(43, 55, 85, 63); LcdSetColor(WHITE); }; LcdText(44, 56, 85, 63, "Гл. экр."); LcdSetColor(BLACK); if(ps_focus == 6) { LcdSetColor(BLACK); LcdRect(87, 55, 127, 63); LcdSetColor(WHITE); }; LcdText(88, 56, 127, 63, "Вперед"); LcdSetColor(BLACK); */ LcdClear(); DrawButton(0, 53, BTN_BACK, ps_focus == 4); DrawButton(42, 53, BTN_HOME, ps_focus == 5); DrawButton(84, 53, BTN_FORWARD, ps_focus == 6); DrawMessageWindow("строка1", "строка2", "строка2", MB_OK + MB_CANCEL); DrawEditorScreen(); LcdDraw(); }