Linear stabilizer voltage and current on lm358 and transictor. Digital control and indication on stm32f103rbt and tft01-22sp (ili9341). https://www.youtube.com/watch?v=DLC3KEtlr9I https://radiokot.ru/forum/viewtopic.php?f=11&t=112440

Dependencies:   mbed TFT_fonts SPI_TFT_ILI9341 beep _24LCXXX

Committer:
sinrab
Date:
Sat Nov 22 18:51:39 2014 +0000
Revision:
3:791cf9a867d1
Parent:
2:d20b1ef35d3f
Child:
4:776f59129c24
????? ????????? ?????????????? ?????????? ? ???? ? ?????????? ? ???? ???

Who changed what in which revision?

UserRevisionLine numberNew contents of line
sinrab 0:ed1ba99f7b14 1 #include "mbed.h"
sinrab 0:ed1ba99f7b14 2 #include "SPI_TFT_ILI9341.h"
sinrab 3:791cf9a867d1 3 //----------------------------------
sinrab 0:ed1ba99f7b14 4 #include "digi36x44.h"
sinrab 3:791cf9a867d1 5 #include "Consolas26x49.h"
sinrab 3:791cf9a867d1 6 #include "Consolas19x35.h"
sinrab 0:ed1ba99f7b14 7 #include "Courier8x13.h"
sinrab 0:ed1ba99f7b14 8 #include "CourierNew13x23.h"
sinrab 0:ed1ba99f7b14 9 #include "Lucida13x21.h"
sinrab 0:ed1ba99f7b14 10 //----------------------------------
sinrab 0:ed1ba99f7b14 11 #define text5 0xFFFF
sinrab 0:ed1ba99f7b14 12 #define back5 0x018C
sinrab 0:ed1ba99f7b14 13
sinrab 0:ed1ba99f7b14 14 #define text5_i 0x0000
sinrab 0:ed1ba99f7b14 15 #define back5_i 0x0660
sinrab 0:ed1ba99f7b14 16 #define back5_iset 0xF986
sinrab 0:ed1ba99f7b14 17 //----------------------------------
sinrab 0:ed1ba99f7b14 18 #define text4 0xFFFF
sinrab 0:ed1ba99f7b14 19 #define back4 0x3320
sinrab 0:ed1ba99f7b14 20
sinrab 0:ed1ba99f7b14 21 #define text4_i 0x0000
sinrab 0:ed1ba99f7b14 22 #define back4_i 0xFCD9
sinrab 0:ed1ba99f7b14 23 //----------------------------------
sinrab 0:ed1ba99f7b14 24 #define text2 0x0000
sinrab 0:ed1ba99f7b14 25 #define back2 0x9E7F
sinrab 0:ed1ba99f7b14 26 //----------------------------------
sinrab 3:791cf9a867d1 27 #define colorline 0xECA7 // цвет рамок 0xECA7 - песочный 0x018C - темносиний 0xFFE0 - желтый
sinrab 3:791cf9a867d1 28 #define color_text_on Green // ON текст
sinrab 3:791cf9a867d1 29 #define color_back_on 0x0339 // ON фон
sinrab 3:791cf9a867d1 30 #define color_scale1 0x3320 // шкала U
sinrab 3:791cf9a867d1 31 #define color_scale2 0x9A60 // шкала I
sinrab 3:791cf9a867d1 32 //----------------------------------
sinrab 0:ed1ba99f7b14 33 SPI_TFT_ILI9341 TFT(D11, D12, D13, D8, D9, D10,"TFT"); // mosi, miso, sclk, cs, reset, dc
sinrab 0:ed1ba99f7b14 34 void grid(void);
sinrab 2:d20b1ef35d3f 35 Timer fps;// FPS
sinrab 0:ed1ba99f7b14 36 //Ticker valueUI;
sinrab 3:791cf9a867d1 37 InterruptIn button(A4); // кнопка питания вкл\выкл
sinrab 0:ed1ba99f7b14 38 //----------------------------------------------------------------------------------------------------------- Ввести в меню опцию коррекции падения напряжения на токоизмерительном шунте.
sinrab 0:ed1ba99f7b14 39 int t; // секунд с момента включения
sinrab 0:ed1ba99f7b14 40 int tstart; // при включении нагрузки равна реальному времени
sinrab 1:7bc0f280c259 41 time_t treal; // секунды реального времени для таймера нагрузки
sinrab 0:ed1ba99f7b14 42 int h=0; //вывод часов
sinrab 0:ed1ba99f7b14 43 int m=0; // минут
sinrab 0:ed1ba99f7b14 44 int s=0; // секунд
sinrab 0:ed1ba99f7b14 45 void timeConvert(void);
sinrab 0:ed1ba99f7b14 46 //----------- my functions ---------//
sinrab 0:ed1ba99f7b14 47 void drawScreen1(void); // экран 1 Главный экран
sinrab 0:ed1ba99f7b14 48 void drawScreen2(void); // экран 2 dats analog in and Noise
sinrab 0:ed1ba99f7b14 49 void drawScreen3(void); // экран 3
sinrab 0:ed1ba99f7b14 50 void drawScreen4(void); // экран 4 Калибровка
sinrab 0:ed1ba99f7b14 51 void drawScreen5(void); // экран 5 Настройки главный
sinrab 0:ed1ba99f7b14 52 void drawScreen6(void); // экран 6
sinrab 0:ed1ba99f7b14 53 void drawScreen7(void); // экран 7
sinrab 0:ed1ba99f7b14 54 void drawScreen8(void); // экран 8
sinrab 0:ed1ba99f7b14 55 void bootCold(void); // холодный старт
sinrab 2:d20b1ef35d3f 56 float map(float, float, float, float, float); // масштабирование
sinrab 1:7bc0f280c259 57 void SetDateTime(void); // установка даты и времени
sinrab 1:7bc0f280c259 58 int year=2014;
sinrab 1:7bc0f280c259 59 int mon=11;
sinrab 1:7bc0f280c259 60 int day=1;
sinrab 1:7bc0f280c259 61 int hour=16;
sinrab 1:7bc0f280c259 62 int min=42;
sinrab 1:7bc0f280c259 63 int sec=0;
sinrab 1:7bc0f280c259 64 time_t seconds; //для часов реального времени
sinrab 3:791cf9a867d1 65 float tempstart=42; // температура старта вентилятора
sinrab 3:791cf9a867d1 66 float tempfull=60; // полной мощности вентилятора tempstart tempfull tempcutoff
sinrab 3:791cf9a867d1 67 float tempcutoff=80; // отключения нагрузки
sinrab 3:791cf9a867d1 68 int umax=31; // U max
sinrab 3:791cf9a867d1 69 float rdown=0.240; // R сопротивление шунта для расчета падения напряжения выхода от зависимости от тока нагрузки
sinrab 3:791cf9a867d1 70 int rdown_on=0; // по умолчанию без падения напряжения на резисторе шунта
sinrab 3:791cf9a867d1 71 char *ron = "On "; // для вывода в меню главных настроек On
sinrab 3:791cf9a867d1 72 char *roff = "Off"; // для вывода в меню главных настроек Off
sinrab 0:ed1ba99f7b14 73 //---------------------------
sinrab 0:ed1ba99f7b14 74 float avgAin0(); // среднее значение с входа A0
sinrab 0:ed1ba99f7b14 75 float avgAin1(); // среднее значение с входа A1
sinrab 0:ed1ba99f7b14 76 float avgAin2(); // среднее значение с входа A2
sinrab 0:ed1ba99f7b14 77 float avgAin3(); // среднее значение с входа A3
sinrab 3:791cf9a867d1 78 //float avgAin4(); // среднее значение с входа A4
sinrab 3:791cf9a867d1 79 //float avgAin5(); // среднее значение с входа A5
sinrab 0:ed1ba99f7b14 80 //----
sinrab 0:ed1ba99f7b14 81 float in0 = 0;
sinrab 0:ed1ba99f7b14 82 float in1 = 0;
sinrab 0:ed1ba99f7b14 83 float in2 = 0;
sinrab 0:ed1ba99f7b14 84 float in3 = 0;
sinrab 3:791cf9a867d1 85 //float in4 = 0;
sinrab 3:791cf9a867d1 86 //float in5 = 0;
sinrab 0:ed1ba99f7b14 87 //----
sinrab 3:791cf9a867d1 88 float U5 = 0;
sinrab 0:ed1ba99f7b14 89 float Ireal = 0;
sinrab 3:791cf9a867d1 90 float U30 = 0;
sinrab 3:791cf9a867d1 91 //float Iset = 0;
sinrab 3:791cf9a867d1 92 //float Uusb = 0;
sinrab 3:791cf9a867d1 93 //float Iusb = 0;
sinrab 0:ed1ba99f7b14 94 //---------------------------
sinrab 0:ed1ba99f7b14 95 void dataProcessing(void); // обработка и подготовка данных с аналоговых входов
sinrab 0:ed1ba99f7b14 96 void powerButton(void); // при нажатии кнопки питания
sinrab 0:ed1ba99f7b14 97 void buttonUse(void); // обработка нажатий кнопок
sinrab 0:ed1ba99f7b14 98 //-----------------------------------------------------------------------------------------------------------
sinrab 3:791cf9a867d1 99 float a0a = 0.0012; // A0 - U 5 - avg при 0 - нижняя точка U 5 вольт
sinrab 3:791cf9a867d1 100 float a0k = 5.0079; // A0 - U 5 - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 101 //---------------------------------------------------------------
sinrab 3:791cf9a867d1 102 float a1a = 0.1437; // A1 - I бп - avg при 0 - нижняя точка a1a = avgAin1() - 0.00004
sinrab 3:791cf9a867d1 103 float a1k = 3253; // A1 - I бп - коэффициент - верхняя точка a1k = 2000/(avgAin1() - a1a) при 2амперах
sinrab 0:ed1ba99f7b14 104 //---------------------------------------------------------------
sinrab 3:791cf9a867d1 105 float a2a = 0.00005; // A2 - U 30 - avg при 0 - нижняя точка U 33 вольта
sinrab 3:791cf9a867d1 106 float a2k = 32.94623; // A2 - U 30 - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 107 //---------------------------------------------------------------
sinrab 3:791cf9a867d1 108 //float a3a = 0.0037; // A3 - I уст - avg при 0 - нижняя точка
sinrab 3:791cf9a867d1 109 //float a3k = 1839.1; // A3 - I уст - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 110 //---------------------------------------------------------------
sinrab 3:791cf9a867d1 111 //float a4a = 0.0024; // A4 - U usb - avg при 0 - нижняя точка
sinrab 3:791cf9a867d1 112 //float a4k = 2.0; // A4 - U usb - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 113 //---------------------------------------------------------------
sinrab 3:791cf9a867d1 114 //float a5a = 0.0024; // A5 - I usb - avg при 0 - нижняя точка
sinrab 3:791cf9a867d1 115 //int a5k = 3144; // A5 - I usb - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 116 //---------------------------------------------------------------
sinrab 0:ed1ba99f7b14 117 float noisea0; //типа уровень шума (разница между минимум и максимум за 100 измерений) для А0
sinrab 0:ed1ba99f7b14 118 float noisea1; // - - для A1
sinrab 0:ed1ba99f7b14 119 float noisea2; // - - для A2
sinrab 0:ed1ba99f7b14 120 float noisea3; // - - для A3
sinrab 3:791cf9a867d1 121 //float noisea4; // - - для A4
sinrab 3:791cf9a867d1 122 //float noisea5; // - - для A5
sinrab 0:ed1ba99f7b14 123 //-----------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 124 DigitalIn buttonUp(D3); // Up
sinrab 3:791cf9a867d1 125 DigitalIn buttonDown(D2); // Down
sinrab 3:791cf9a867d1 126 DigitalIn buttonEnter(A5); // Enter
sinrab 0:ed1ba99f7b14 127 int Screen=1; // по умолчанию грузим первое меню
sinrab 0:ed1ba99f7b14 128 int complit=0; // в начале меню не прорисовано
sinrab 0:ed1ba99f7b14 129 int pb=0; // для прорисовки кнопки
sinrab 0:ed1ba99f7b14 130 int kline=15; // номер начальной строки в меню калибровки экран 4
sinrab 1:7bc0f280c259 131 int mline=15; // номер начальной строки в меню Настройки главная экран 5
sinrab 0:ed1ba99f7b14 132 int mline2=0; //в главном меню строка 2 не выбрана
sinrab 3:791cf9a867d1 133 int mline4=0; // 4
sinrab 3:791cf9a867d1 134 int mline5=0; // 5
sinrab 3:791cf9a867d1 135 int mline6=0; // 6
sinrab 3:791cf9a867d1 136 int mline7=0; // 7
sinrab 3:791cf9a867d1 137 int mline8=0; // 8
sinrab 3:791cf9a867d1 138 int mline11=0; // 11
sinrab 1:7bc0f280c259 139 int nline=8; // номер начальной строки в меню установки времени экран 3
sinrab 0:ed1ba99f7b14 140 int pmenu=0; //в главном меню изменение выбраной строки не действительно
sinrab 0:ed1ba99f7b14 141 int powerProtect=1; //защита от кз
sinrab 0:ed1ba99f7b14 142 int pp=0; //защита от кз для прорисовки меню
sinrab 3:791cf9a867d1 143 //int cc=0; // значит идет C.V
sinrab 2:d20b1ef35d3f 144 int pm=0; // для одной прорисовки сс и сv
sinrab 3:791cf9a867d1 145 int cs=0; // короткое замыкание
sinrab 3:791cf9a867d1 146 int csp=0; // для одной прорисовки короткого замыкания
sinrab 3:791cf9a867d1 147 float brightness = 1.0f; //яркость экрана
sinrab 3:791cf9a867d1 148 PwmOut pinbrightness(D6); // выход на ключ регулировки яркости экрана
sinrab 3:791cf9a867d1 149 float fanspeed = 0.0f;
sinrab 3:791cf9a867d1 150 PwmOut fan(D7); // выход вентилятора
sinrab 3:791cf9a867d1 151 int temperature = 25; // текущая температура
sinrab 0:ed1ba99f7b14 152 //-----------------------------------------------------------------------------------------------------------
sinrab 3:791cf9a867d1 153 DigitalOut powerMosfet(D4); // выход управления нагрузкой
sinrab 3:791cf9a867d1 154 DigitalIn cc(D14); //вход СС 0 - СС, 1 - CV
sinrab 3:791cf9a867d1 155 int ccc=0;
sinrab 3:791cf9a867d1 156 DigitalOut ledcc(PC_6); // светодиод C.C
sinrab 3:791cf9a867d1 157 DigitalOut ledshort(PC_8); // светодиод КЗ
sinrab 0:ed1ba99f7b14 158 AnalogIn ainA0(A0);
sinrab 0:ed1ba99f7b14 159 AnalogIn ainA1(A1);
sinrab 0:ed1ba99f7b14 160 AnalogIn ainA2(A2);
sinrab 0:ed1ba99f7b14 161 AnalogIn ainA3(A3);
sinrab 3:791cf9a867d1 162 //AnalogIn ainA4(A4);
sinrab 3:791cf9a867d1 163 //AnalogIn ainA5(A5);
sinrab 0:ed1ba99f7b14 164 //BusOut unused(A5,A2,A3,A4);
sinrab 0:ed1ba99f7b14 165 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 166 //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 167 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 168 void bootCold(void)
sinrab 0:ed1ba99f7b14 169 {
sinrab 0:ed1ba99f7b14 170 powerMosfet = 0; // при включении выход выключен
sinrab 3:791cf9a867d1 171 ledcc=0;
sinrab 3:791cf9a867d1 172 ledshort=0;
sinrab 0:ed1ba99f7b14 173 TFT.claim(stdout); // send stdout to the TFT display
sinrab 1:7bc0f280c259 174 set_time(1414838392); // Set RTC time to Wed, 28 Oct 2009 11:35:37
sinrab 0:ed1ba99f7b14 175 tstart = treal = time(NULL);
sinrab 1:7bc0f280c259 176 pinbrightness.period(0.001); // задаём частоту Шим подсветки 0.001 - 1000 герц
sinrab 3:791cf9a867d1 177 fan.period(0.01);
sinrab 0:ed1ba99f7b14 178 TFT.set_orientation(3);
sinrab 0:ed1ba99f7b14 179 TFT.background(Black);
sinrab 0:ed1ba99f7b14 180 TFT.cls();
sinrab 0:ed1ba99f7b14 181 wait(0.2);
sinrab 0:ed1ba99f7b14 182 pinbrightness = brightness; // включаем подсветку
sinrab 3:791cf9a867d1 183 fan = fanspeed; // устанавливаем скорость
sinrab 1:7bc0f280c259 184
sinrab 0:ed1ba99f7b14 185 }
sinrab 0:ed1ba99f7b14 186 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 187 int main() //--------- Главная функция ---------//
sinrab 0:ed1ba99f7b14 188 {
sinrab 0:ed1ba99f7b14 189 bootCold(); // холодный старт
sinrab 0:ed1ba99f7b14 190 button.fall(&powerButton); // прерывание кнопки включения нагрузки запускает функцию
sinrab 0:ed1ba99f7b14 191
sinrab 0:ed1ba99f7b14 192 while(1) {
sinrab 0:ed1ba99f7b14 193
sinrab 0:ed1ba99f7b14 194 dataProcessing(); // обработка и подготовка данных с аналоговых входов
sinrab 0:ed1ba99f7b14 195 buttonUse(); // обработка нажатий кнопок
sinrab 0:ed1ba99f7b14 196 if (Screen == 1) drawScreen1();
sinrab 0:ed1ba99f7b14 197 if (Screen == 2) drawScreen2();
sinrab 0:ed1ba99f7b14 198 if (Screen == 3) drawScreen3();
sinrab 0:ed1ba99f7b14 199 if (Screen == 4) drawScreen4();
sinrab 0:ed1ba99f7b14 200 if (Screen == 5) drawScreen5();
sinrab 0:ed1ba99f7b14 201 if (Screen == 6) drawScreen6();
sinrab 0:ed1ba99f7b14 202 if (Screen == 7) drawScreen7();
sinrab 0:ed1ba99f7b14 203 if (Screen == 8) drawScreen8();
sinrab 0:ed1ba99f7b14 204
sinrab 0:ed1ba99f7b14 205 }
sinrab 0:ed1ba99f7b14 206 } //--------- Главная функция ---------//
sinrab 0:ed1ba99f7b14 207 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 208 //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 209 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 210 void drawScreen1(void) // экран 1
sinrab 0:ed1ba99f7b14 211 {
sinrab 0:ed1ba99f7b14 212 if (complit==0) {
sinrab 3:791cf9a867d1 213 pm=0;
sinrab 3:791cf9a867d1 214 ccc=0;
sinrab 0:ed1ba99f7b14 215 pb=0;
sinrab 0:ed1ba99f7b14 216 pp=0;
sinrab 0:ed1ba99f7b14 217 TFT.set_orientation(3);
sinrab 0:ed1ba99f7b14 218 TFT.background(Black);
sinrab 0:ed1ba99f7b14 219 TFT.cls();
sinrab 3:791cf9a867d1 220 TFT.rect(0,0,319,239,colorline); //рамка
sinrab 3:791cf9a867d1 221 TFT.rect(10,62,309,76,colorline); //аналоговая рамка 1
sinrab 3:791cf9a867d1 222 TFT.rect(10,137,309,151,colorline); //авалоговая рамка 2
sinrab 0:ed1ba99f7b14 223 //grid();
sinrab 0:ed1ba99f7b14 224 //int y = 51;
sinrab 0:ed1ba99f7b14 225 //TFT.line(5,y,310,y, White);
sinrab 0:ed1ba99f7b14 226 TFT.background(Black);
sinrab 3:791cf9a867d1 227 TFT.foreground(colorline); // цвет слов
sinrab 3:791cf9a867d1 228 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 2:d20b1ef35d3f 229 TFT.locate(193, 13);
sinrab 3:791cf9a867d1 230 TFT.printf("v"); // V
sinrab 3:791cf9a867d1 231 TFT.locate(165, 88);
sinrab 3:791cf9a867d1 232 TFT.printf("ma"); // mA
sinrab 0:ed1ba99f7b14 233 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 234
sinrab 3:791cf9a867d1 235 TFT.fillrect(7,161,104,183,0x2104); // подвал левый квадрат верхний заливка
sinrab 3:791cf9a867d1 236 TFT.fillrect(7,185,104,207,0x2104); // средний
sinrab 3:791cf9a867d1 237 TFT.fillrect(7,207,104,231,0x2104); // нижний
sinrab 0:ed1ba99f7b14 238
sinrab 3:791cf9a867d1 239 TFT.rect(6,160,105,232,colorline); // левый квадрат
sinrab 3:791cf9a867d1 240 TFT.line(7,184,104,184,colorline); // левый разделительная линия вверхняя
sinrab 3:791cf9a867d1 241 TFT.line(7,208,104,208,colorline); // нижняя
sinrab 3:791cf9a867d1 242 TFT.rect(112,160,207,192,colorline); //средний квадрат верх
sinrab 3:791cf9a867d1 243 TFT.rect(112,198,207,232,colorline); // низ
sinrab 3:791cf9a867d1 244 TFT.rect(214,160,313,232,colorline); //правый квадрат
sinrab 0:ed1ba99f7b14 245
sinrab 0:ed1ba99f7b14 246 }
sinrab 0:ed1ba99f7b14 247 //-----------------------------------------------------------------------------
sinrab 3:791cf9a867d1 248 if (powerProtect==0 & pp==0) { // защита от кз
sinrab 3:791cf9a867d1 249 TFT.fillrect(113,161,206,191,Black); //0
sinrab 3:791cf9a867d1 250 TFT.background(Black);
sinrab 3:791cf9a867d1 251 TFT.foreground(0x4208);
sinrab 0:ed1ba99f7b14 252 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 253 TFT.locate(115, 165);
sinrab 3:791cf9a867d1 254 TFT.printf("Protect");
sinrab 3:791cf9a867d1 255 pp=1;
sinrab 3:791cf9a867d1 256 }
sinrab 3:791cf9a867d1 257 if (powerProtect==1 & pp==0) { //1
sinrab 3:791cf9a867d1 258 TFT.fillrect(113,161,206,191,0x0180);
sinrab 3:791cf9a867d1 259 TFT.background(0x0180);
sinrab 3:791cf9a867d1 260 TFT.foreground(Green);
sinrab 3:791cf9a867d1 261 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 262 TFT.locate(115, 165);
sinrab 0:ed1ba99f7b14 263 TFT.printf("Protect");
sinrab 0:ed1ba99f7b14 264 pp=1;
sinrab 0:ed1ba99f7b14 265 }
sinrab 3:791cf9a867d1 266
sinrab 3:791cf9a867d1 267 if (cs==0 & csp==0){ // прорисовка короткого замыкания TFT.rect(112,198,207,232,colorline);
sinrab 3:791cf9a867d1 268 TFT.fillrect(113,199,206,231,Black); //0
sinrab 3:791cf9a867d1 269 TFT.background(Black);
sinrab 3:791cf9a867d1 270 TFT.foreground(0x4208);
sinrab 0:ed1ba99f7b14 271 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 272 TFT.locate(130, 205);
sinrab 3:791cf9a867d1 273 TFT.printf("SHORT");
sinrab 3:791cf9a867d1 274 csp=1;
sinrab 3:791cf9a867d1 275 }
sinrab 3:791cf9a867d1 276 if (cs==1 & csp==0){ //1
sinrab 3:791cf9a867d1 277 TFT.fillrect(113,199,206,231,0x6000);
sinrab 3:791cf9a867d1 278 TFT.background(0x6000);
sinrab 3:791cf9a867d1 279 TFT.foreground(Red);
sinrab 3:791cf9a867d1 280 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 281 TFT.locate(130, 205);
sinrab 3:791cf9a867d1 282 TFT.printf("SHORT");
sinrab 3:791cf9a867d1 283 csp=1;
sinrab 3:791cf9a867d1 284 }
sinrab 3:791cf9a867d1 285
sinrab 0:ed1ba99f7b14 286
sinrab 0:ed1ba99f7b14 287
sinrab 2:d20b1ef35d3f 288 fps.reset();
sinrab 2:d20b1ef35d3f 289 fps.start();
sinrab 2:d20b1ef35d3f 290
sinrab 0:ed1ba99f7b14 291 TFT.background(Black);
sinrab 2:d20b1ef35d3f 292
sinrab 3:791cf9a867d1 293 if (cc==0){ //если C.C то меняем цвет значения напряжения
sinrab 2:d20b1ef35d3f 294 TFT.foreground(Red);
sinrab 2:d20b1ef35d3f 295 }else{
sinrab 2:d20b1ef35d3f 296 TFT.foreground(Green);
sinrab 2:d20b1ef35d3f 297 }
sinrab 2:d20b1ef35d3f 298
sinrab 0:ed1ba99f7b14 299 TFT.set_font((unsigned char*) digi36x44);
sinrab 0:ed1ba99f7b14 300 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 301 if(U5<0) U5=0;
sinrab 3:791cf9a867d1 302 if (U5<4.5f){
sinrab 3:791cf9a867d1 303 //TFT.fillrect(10,10,46,54,Black);
sinrab 3:791cf9a867d1 304 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 305 TFT.printf("%5.3f", U5); // выводим значение с A0 (напряжение)
sinrab 2:d20b1ef35d3f 306 }else{
sinrab 2:d20b1ef35d3f 307 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 308 TFT.printf("%05.2f", U30); // выводим значение с A0 (напряжение)
sinrab 2:d20b1ef35d3f 309 }
sinrab 2:d20b1ef35d3f 310
sinrab 2:d20b1ef35d3f 311 TFT.pixel(82, 53, Black);
sinrab 2:d20b1ef35d3f 312 TFT.pixel(117, 53, Black);
sinrab 2:d20b1ef35d3f 313
sinrab 0:ed1ba99f7b14 314 TFT.locate(10, 85);
sinrab 2:d20b1ef35d3f 315 TFT.foreground(Green);
sinrab 3:791cf9a867d1 316 TFT.printf("%04.0f", Ireal); // выводим значение с A1 (ток)
sinrab 0:ed1ba99f7b14 317
sinrab 2:d20b1ef35d3f 318
sinrab 3:791cf9a867d1 319 TFT.background(0x2104); // выводим мощность W
sinrab 2:d20b1ef35d3f 320 TFT.foreground(0xE71C);//текст
sinrab 0:ed1ba99f7b14 321 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 0:ed1ba99f7b14 322 TFT.locate(11, 162);
sinrab 3:791cf9a867d1 323 TFT.printf("%05.2f W", U5*Ireal/1000);
sinrab 0:ed1ba99f7b14 324
sinrab 3:791cf9a867d1 325 TFT.background(0x2104); // выводим время включеной нагрузки
sinrab 2:d20b1ef35d3f 326 TFT.foreground(0xE71C);//текст
sinrab 0:ed1ba99f7b14 327 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 328 TFT.locate(7, 187);
sinrab 0:ed1ba99f7b14 329 timeConvert();
sinrab 0:ed1ba99f7b14 330 TFT.printf("%02d:%02d:%02d", h, m, s);
sinrab 0:ed1ba99f7b14 331
sinrab 0:ed1ba99f7b14 332
sinrab 0:ed1ba99f7b14 333
sinrab 3:791cf9a867d1 334 if (powerMosfet==0 & pb==0) { // выводим OFF
sinrab 3:791cf9a867d1 335 TFT.background(Black);
sinrab 2:d20b1ef35d3f 336 TFT.foreground(0xA514);
sinrab 3:791cf9a867d1 337 TFT.fillrect(215,161,312,231,Black);
sinrab 0:ed1ba99f7b14 338 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 3:791cf9a867d1 339 TFT.locate(227, 174);
sinrab 0:ed1ba99f7b14 340 TFT.printf("OFF");
sinrab 0:ed1ba99f7b14 341 pb=1;
sinrab 0:ed1ba99f7b14 342 }
sinrab 3:791cf9a867d1 343 if (powerMosfet==1 & pb==0) { // выводим ON
sinrab 3:791cf9a867d1 344 TFT.background(color_back_on);
sinrab 3:791cf9a867d1 345 TFT.foreground(color_text_on);
sinrab 3:791cf9a867d1 346 TFT.fillrect(215,161,312,231,color_back_on);
sinrab 0:ed1ba99f7b14 347 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 3:791cf9a867d1 348 TFT.locate(238, 174);
sinrab 0:ed1ba99f7b14 349 TFT.printf("ON");
sinrab 0:ed1ba99f7b14 350 pb=1;
sinrab 0:ed1ba99f7b14 351 }
sinrab 2:d20b1ef35d3f 352
sinrab 3:791cf9a867d1 353 int xscale1 = map(U5, 0, 32, 0, 298);
sinrab 2:d20b1ef35d3f 354 if (xscale1>297) xscale1=298;
sinrab 3:791cf9a867d1 355 TFT.fillrect(11, 63, (xscale1+10), 75, color_scale1); //0x04C9 // аналоговая шкала Напряжение
sinrab 2:d20b1ef35d3f 356 TFT.fillrect((xscale1+12), 63, 308, 75, Black);
sinrab 3:791cf9a867d1 357 int xscale2 = map(Ireal, 0, 2600, 0, 298);
sinrab 2:d20b1ef35d3f 358 if (xscale2>297) xscale2=298;
sinrab 3:791cf9a867d1 359 TFT.fillrect(11, 138, (xscale2+10), 150, color_scale2); //0x9A60 // аналоговая шкала Ток
sinrab 3:791cf9a867d1 360 TFT.fillrect((xscale2+11), 138, 308, 150, Black);
sinrab 3:791cf9a867d1 361
sinrab 3:791cf9a867d1 362 //int zxc = int(Iset);
sinrab 3:791cf9a867d1 363 //if (zxc>295) zxc=295;
sinrab 3:791cf9a867d1 364 //if (zxc<0) zxc=0;
sinrab 3:791cf9a867d1 365 //TFT.fillrect(11+zxc,138, 13+zxc, 150, Red); // шкала I set
sinrab 0:ed1ba99f7b14 366
sinrab 2:d20b1ef35d3f 367 fps.stop();
sinrab 3:791cf9a867d1 368 TFT.set_font((unsigned char*) Courier8x13); // FPS
sinrab 3:791cf9a867d1 369 TFT.locate(169,81);
sinrab 2:d20b1ef35d3f 370 printf("%0.2f", (1/fps.read()));
sinrab 2:d20b1ef35d3f 371
sinrab 3:791cf9a867d1 372 TFT.background(0x2104);
sinrab 3:791cf9a867d1 373 TFT.foreground(White);
sinrab 3:791cf9a867d1 374 TFT.set_font((unsigned char*) Lucida13x21); //выводим t
sinrab 3:791cf9a867d1 375 TFT.locate(11, 211);
sinrab 3:791cf9a867d1 376 TFT.printf(" %d 'C ", temperature);
sinrab 3:791cf9a867d1 377
sinrab 3:791cf9a867d1 378 /*
sinrab 3:791cf9a867d1 379 if (dinCC==1 & cc_one==1){
sinrab 3:791cf9a867d1 380 cc=1;
sinrab 3:791cf9a867d1 381 pm=0;
sinrab 3:791cf9a867d1 382 cc_one=0;
sinrab 3:791cf9a867d1 383 }
sinrab 3:791cf9a867d1 384 if (dinCC==0 & cc_one==0){
sinrab 3:791cf9a867d1 385 cc=0;
sinrab 3:791cf9a867d1 386 pm=0;
sinrab 3:791cf9a867d1 387 cc_one=1;
sinrab 3:791cf9a867d1 388 }
sinrab 3:791cf9a867d1 389 */
sinrab 3:791cf9a867d1 390 if(cc==1 & ccc==1){ // защелка для отображения сс сv
sinrab 3:791cf9a867d1 391 pm=0;
sinrab 3:791cf9a867d1 392 ccc=0;
sinrab 3:791cf9a867d1 393 }
sinrab 3:791cf9a867d1 394 if(cc==0 & ccc==0){
sinrab 3:791cf9a867d1 395 pm=0;
sinrab 3:791cf9a867d1 396 ccc=1;
sinrab 3:791cf9a867d1 397 }
sinrab 3:791cf9a867d1 398
sinrab 3:791cf9a867d1 399 if(cc==0 & pm==0){ // c.c
sinrab 2:d20b1ef35d3f 400 TFT.fillrect(240,10,304,53,Black);//c.v стереть
sinrab 2:d20b1ef35d3f 401 TFT.fillrect(240,85,304,128,0x6000);//c.c
sinrab 3:791cf9a867d1 402 TFT.rect(240,85,304,128,0xC800);
sinrab 2:d20b1ef35d3f 403 TFT.background(0x6000);
sinrab 2:d20b1ef35d3f 404 TFT.foreground(Red);
sinrab 2:d20b1ef35d3f 405 TFT.set_font((unsigned char*) Consolas19x35);
sinrab 2:d20b1ef35d3f 406 TFT.locate(246, 89);
sinrab 2:d20b1ef35d3f 407 TFT.printf("C.C");
sinrab 2:d20b1ef35d3f 408 pm=1;
sinrab 2:d20b1ef35d3f 409 }
sinrab 3:791cf9a867d1 410 if(cc==1 & pm==0){ // c.v
sinrab 2:d20b1ef35d3f 411 TFT.fillrect(240,85,304,128,Black);//c.c стереть
sinrab 3:791cf9a867d1 412 TFT.fillrect(240,10,304,53,0x0180);//c.v
sinrab 3:791cf9a867d1 413 TFT.rect(240,10,304,53,0x04C0);
sinrab 2:d20b1ef35d3f 414 TFT.background(0x0180);
sinrab 2:d20b1ef35d3f 415 TFT.foreground(Green);
sinrab 2:d20b1ef35d3f 416 TFT.set_font((unsigned char*) Consolas19x35);
sinrab 2:d20b1ef35d3f 417 TFT.locate(246, 14);
sinrab 2:d20b1ef35d3f 418 TFT.printf("C.V");
sinrab 2:d20b1ef35d3f 419 pm=1;
sinrab 2:d20b1ef35d3f 420 }
sinrab 0:ed1ba99f7b14 421
sinrab 0:ed1ba99f7b14 422
sinrab 0:ed1ba99f7b14 423 }
sinrab 0:ed1ba99f7b14 424 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 425 void drawScreen2(void) // экран 2 Data analo in, noise
sinrab 0:ed1ba99f7b14 426 {
sinrab 0:ed1ba99f7b14 427 if (complit==0) {
sinrab 0:ed1ba99f7b14 428 TFT.background(back2);
sinrab 0:ed1ba99f7b14 429 TFT.foreground(text2);
sinrab 0:ed1ba99f7b14 430 TFT.cls();
sinrab 0:ed1ba99f7b14 431 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 432 }
sinrab 0:ed1ba99f7b14 433
sinrab 0:ed1ba99f7b14 434 TFT.background(back2);
sinrab 0:ed1ba99f7b14 435 TFT.foreground(text2);
sinrab 0:ed1ba99f7b14 436 TFT.set_font((unsigned char*) Courier8x13);
sinrab 0:ed1ba99f7b14 437 TFT.locate(0, 0);
sinrab 0:ed1ba99f7b14 438 printf("--------- Data Analog In --------- \n");
sinrab 3:791cf9a867d1 439 printf("U.5 A0 noise= %0.2f, avg= %0.5f \n", noisea0, in0);
sinrab 3:791cf9a867d1 440 printf("U= %06.4f coeff. k=%0.5f, a=%0.6f \n", U5, a0k, a0a); // A0 U real
sinrab 0:ed1ba99f7b14 441 printf("---------------------------------- \n");
sinrab 0:ed1ba99f7b14 442 printf("I.real A1 noise= %0.2f, avg= %0.5f \n", noisea1, in1);
sinrab 3:791cf9a867d1 443 printf("I= %06.2f coeff. k=%0.5f, a=%0.6f \n", Ireal, a1k, a1a); // A1 I real
sinrab 0:ed1ba99f7b14 444 printf("---------------------------------- \n");
sinrab 3:791cf9a867d1 445 printf("U.30 A2 noise= %0.2f, avg= %0.5f \n", noisea2, in2);
sinrab 3:791cf9a867d1 446 printf("U= %06.3f coeff. k=%0.5f, a=%0.6f \n", U30, a2k, a2a); // A2 U set
sinrab 0:ed1ba99f7b14 447 printf("---------------------------------- \n");
sinrab 3:791cf9a867d1 448 printf("Temp A3 noise= %0.2f, avg= %0.5f \n", noisea3, in3);
sinrab 3:791cf9a867d1 449 //printf("I= %06.1f coeff. k=%0.0f, a=%0.4f \n", Iset, a3k, a3a); // A3 I set
sinrab 3:791cf9a867d1 450 //printf("---------------------------------- \n");
sinrab 3:791cf9a867d1 451 //printf("U.usb A4 noise= %0.2f, avg= %0.5f \n", noisea4, in4);
sinrab 3:791cf9a867d1 452 //printf("U= %06.3f coeff. k=%0.0f, a=%0.4f \n", Uusb, a4k, a4a); // A4 U usb
sinrab 3:791cf9a867d1 453 //printf("---------------------------------- \n");
sinrab 3:791cf9a867d1 454 //printf("I.usb A5 noise= %0.2f, avg= %0.5f \n", noisea5, in5);
sinrab 3:791cf9a867d1 455 //printf("I= %06.1f coeff. k=%0.0d, a=%0.4f \n", Iusb, a5k, a5a); // A5 I usb
sinrab 0:ed1ba99f7b14 456 }
sinrab 0:ed1ba99f7b14 457 //------------------------------------------------------------------------------------------------------------
sinrab 1:7bc0f280c259 458 void drawScreen3(void) // экран 3 установка часов
sinrab 0:ed1ba99f7b14 459 {
sinrab 0:ed1ba99f7b14 460 if (complit==0) {
sinrab 1:7bc0f280c259 461 TFT.background(back5);
sinrab 1:7bc0f280c259 462 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 463 TFT.cls();
sinrab 0:ed1ba99f7b14 464 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 465 }
sinrab 1:7bc0f280c259 466 TFT.background(back5);
sinrab 1:7bc0f280c259 467 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 468 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 1:7bc0f280c259 469 char buffer[32];
sinrab 1:7bc0f280c259 470 seconds=time(NULL);
sinrab 1:7bc0f280c259 471 strftime(buffer, 32, "%H:%M:%S %d.%m.%Y", localtime(&seconds));
sinrab 1:7bc0f280c259 472 TFT.locate (0,0);
sinrab 1:7bc0f280c259 473 printf("------- Set Time --------\n");
sinrab 1:7bc0f280c259 474 TFT.background(back5_i);
sinrab 1:7bc0f280c259 475 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 476 TFT.locate (30,25);
sinrab 1:7bc0f280c259 477 printf("%s", buffer); //вывод реального времени
sinrab 1:7bc0f280c259 478 TFT.background(back5);
sinrab 1:7bc0f280c259 479 TFT.foreground(text5);
sinrab 1:7bc0f280c259 480 TFT.locate (28,86);
sinrab 1:7bc0f280c259 481 printf("%02d:%02d:%02d %02d.%02d.%04d",hour, min, sec, day, mon, year); //вывод то что установим
sinrab 1:7bc0f280c259 482 //-----------------------------------1
sinrab 1:7bc0f280c259 483 if (nline==1) {
sinrab 1:7bc0f280c259 484 if (pmenu==1) {
sinrab 1:7bc0f280c259 485 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 486 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 487 } else {
sinrab 1:7bc0f280c259 488 TFT.background(back5_i);
sinrab 1:7bc0f280c259 489 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 490 }
sinrab 1:7bc0f280c259 491 TFT.locate(28,64);
sinrab 1:7bc0f280c259 492 printf(" ");
sinrab 1:7bc0f280c259 493 } else {
sinrab 1:7bc0f280c259 494 TFT.locate(28,64);
sinrab 1:7bc0f280c259 495 TFT.background(back5);
sinrab 1:7bc0f280c259 496 TFT.foreground(back5);
sinrab 1:7bc0f280c259 497 printf(" ");
sinrab 1:7bc0f280c259 498 }
sinrab 1:7bc0f280c259 499 //-----------------------------------2
sinrab 1:7bc0f280c259 500 if (nline==2) {
sinrab 1:7bc0f280c259 501 if (pmenu==1) {
sinrab 1:7bc0f280c259 502 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 503 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 504 } else {
sinrab 1:7bc0f280c259 505 TFT.background(back5_i);
sinrab 1:7bc0f280c259 506 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 507 }
sinrab 1:7bc0f280c259 508 TFT.locate(64,64);
sinrab 1:7bc0f280c259 509 printf(" ");
sinrab 1:7bc0f280c259 510 } else {
sinrab 1:7bc0f280c259 511 TFT.locate(64,64);
sinrab 1:7bc0f280c259 512 TFT.background(back5);
sinrab 1:7bc0f280c259 513 TFT.foreground(back5);
sinrab 1:7bc0f280c259 514 printf(" ");
sinrab 1:7bc0f280c259 515 }
sinrab 1:7bc0f280c259 516 //-----------------------------------3
sinrab 1:7bc0f280c259 517 if (nline==3) {
sinrab 1:7bc0f280c259 518 if (pmenu==1) {
sinrab 1:7bc0f280c259 519 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 520 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 521 } else {
sinrab 1:7bc0f280c259 522 TFT.background(back5_i);
sinrab 1:7bc0f280c259 523 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 524 }
sinrab 1:7bc0f280c259 525 TFT.locate(100,64);
sinrab 1:7bc0f280c259 526 printf(" ");
sinrab 1:7bc0f280c259 527 } else {
sinrab 1:7bc0f280c259 528 TFT.locate(100,64);
sinrab 1:7bc0f280c259 529 TFT.background(back5);
sinrab 1:7bc0f280c259 530 TFT.foreground(back5);
sinrab 1:7bc0f280c259 531 printf(" ");
sinrab 1:7bc0f280c259 532 }
sinrab 1:7bc0f280c259 533 //-----------------------------------4
sinrab 1:7bc0f280c259 534 if (nline==4) {
sinrab 1:7bc0f280c259 535 if (pmenu==1) {
sinrab 1:7bc0f280c259 536 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 537 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 538 } else {
sinrab 1:7bc0f280c259 539 TFT.background(back5_i);
sinrab 1:7bc0f280c259 540 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 541 }
sinrab 1:7bc0f280c259 542 TFT.locate(135,64);
sinrab 1:7bc0f280c259 543 printf(" ");
sinrab 1:7bc0f280c259 544 } else {
sinrab 1:7bc0f280c259 545 TFT.locate(135,64);
sinrab 1:7bc0f280c259 546 TFT.background(back5);
sinrab 1:7bc0f280c259 547 TFT.foreground(back5);
sinrab 1:7bc0f280c259 548 printf(" ");
sinrab 1:7bc0f280c259 549 }
sinrab 1:7bc0f280c259 550 //-----------------------------------5
sinrab 1:7bc0f280c259 551 if (nline==5) {
sinrab 1:7bc0f280c259 552 if (pmenu==1) {
sinrab 1:7bc0f280c259 553 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 554 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 555 } else {
sinrab 1:7bc0f280c259 556 TFT.background(back5_i);
sinrab 1:7bc0f280c259 557 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 558 }
sinrab 1:7bc0f280c259 559 TFT.locate(170,64);
sinrab 1:7bc0f280c259 560 printf(" ");
sinrab 1:7bc0f280c259 561 } else {
sinrab 1:7bc0f280c259 562 TFT.locate(170,64);
sinrab 1:7bc0f280c259 563 TFT.background(back5);
sinrab 1:7bc0f280c259 564 TFT.foreground(back5);
sinrab 1:7bc0f280c259 565 printf(" ");
sinrab 1:7bc0f280c259 566 }
sinrab 1:7bc0f280c259 567 //-----------------------------------6
sinrab 1:7bc0f280c259 568 if (nline==6) {
sinrab 1:7bc0f280c259 569 if (pmenu==1) {
sinrab 1:7bc0f280c259 570 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 571 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 572 } else {
sinrab 1:7bc0f280c259 573 TFT.background(back5_i);
sinrab 1:7bc0f280c259 574 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 575 }
sinrab 1:7bc0f280c259 576 TFT.locate(205,64);
sinrab 1:7bc0f280c259 577 printf(" ");
sinrab 1:7bc0f280c259 578 } else {
sinrab 1:7bc0f280c259 579 TFT.locate(205,64);
sinrab 1:7bc0f280c259 580 TFT.background(back5);
sinrab 1:7bc0f280c259 581 TFT.foreground(back5);
sinrab 1:7bc0f280c259 582 printf(" ");
sinrab 1:7bc0f280c259 583 }
sinrab 1:7bc0f280c259 584 //-----------------------------------7
sinrab 1:7bc0f280c259 585 if (nline==7) {
sinrab 1:7bc0f280c259 586 if (pmenu==1) {
sinrab 1:7bc0f280c259 587 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 588 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 589 } else {
sinrab 1:7bc0f280c259 590 TFT.background(back5_i);
sinrab 1:7bc0f280c259 591 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 592 }
sinrab 1:7bc0f280c259 593 TFT.locate(30,120);
sinrab 1:7bc0f280c259 594 printf("Set!");
sinrab 1:7bc0f280c259 595 } else {
sinrab 1:7bc0f280c259 596 TFT.locate(30,120);
sinrab 1:7bc0f280c259 597 TFT.background(back5);
sinrab 1:7bc0f280c259 598 TFT.foreground(text5);
sinrab 1:7bc0f280c259 599 printf("Set!");
sinrab 1:7bc0f280c259 600 }
sinrab 1:7bc0f280c259 601 //-----------------------------------
sinrab 1:7bc0f280c259 602 //-----------------------------------7
sinrab 1:7bc0f280c259 603 if (nline==8) {
sinrab 1:7bc0f280c259 604 if (pmenu==1) {
sinrab 1:7bc0f280c259 605 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 606 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 607 } else {
sinrab 1:7bc0f280c259 608 TFT.background(0xFB2C);
sinrab 1:7bc0f280c259 609 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 610 }
sinrab 1:7bc0f280c259 611 TFT.locate(30,170);
sinrab 1:7bc0f280c259 612 printf("Exit");
sinrab 1:7bc0f280c259 613 } else {
sinrab 1:7bc0f280c259 614 TFT.locate(30,170);
sinrab 1:7bc0f280c259 615 TFT.background(back5);
sinrab 1:7bc0f280c259 616 TFT.foreground(text5);
sinrab 1:7bc0f280c259 617 printf("Exit");
sinrab 1:7bc0f280c259 618 }
sinrab 1:7bc0f280c259 619 //-----------------------------------
sinrab 1:7bc0f280c259 620
sinrab 0:ed1ba99f7b14 621 }
sinrab 0:ed1ba99f7b14 622 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 623 void drawScreen4(void) // экран 4 калибровка
sinrab 0:ed1ba99f7b14 624 {
sinrab 0:ed1ba99f7b14 625 if (complit==0) {
sinrab 0:ed1ba99f7b14 626 TFT.background(back4);
sinrab 0:ed1ba99f7b14 627 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 628 TFT.cls();
sinrab 0:ed1ba99f7b14 629 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 630 }
sinrab 0:ed1ba99f7b14 631 //---------------------------------------------------------------- text4 back4 text4_i back4_i
sinrab 0:ed1ba99f7b14 632 TFT.background(back4);
sinrab 0:ed1ba99f7b14 633 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 634 TFT.locate(0, 0);
sinrab 0:ed1ba99f7b14 635 TFT.set_font((unsigned char*) Courier8x13);
sinrab 0:ed1ba99f7b14 636 printf(" Calibration. Enter - set. \n");
sinrab 0:ed1ba99f7b14 637 printf("--------------------------- \n");
sinrab 0:ed1ba99f7b14 638 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 639 if (kline==1) {
sinrab 0:ed1ba99f7b14 640 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 641 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 642 } else {
sinrab 0:ed1ba99f7b14 643 TFT.background(back4);
sinrab 0:ed1ba99f7b14 644 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 645 }
sinrab 3:791cf9a867d1 646 printf(" U 5v = %06.3f set zero \n", U5); // U real A0 zero
sinrab 0:ed1ba99f7b14 647 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 648 if (kline==2) {
sinrab 0:ed1ba99f7b14 649 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 650 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 651 } else {
sinrab 0:ed1ba99f7b14 652 TFT.background(back4);
sinrab 0:ed1ba99f7b14 653 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 654 }
sinrab 3:791cf9a867d1 655 printf(" U 5v = %06.3f set up dot \n", U5); // U real A0 hi
sinrab 0:ed1ba99f7b14 656 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 657 if (kline==3) {
sinrab 0:ed1ba99f7b14 658 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 659 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 660 } else {
sinrab 0:ed1ba99f7b14 661 TFT.background(back4);
sinrab 0:ed1ba99f7b14 662 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 663 }
sinrab 3:791cf9a867d1 664 printf(" I real = %06.1f set zero \n", Ireal); // I real A1 zero
sinrab 0:ed1ba99f7b14 665 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 666 if (kline==4) {
sinrab 0:ed1ba99f7b14 667 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 668 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 669 } else {
sinrab 0:ed1ba99f7b14 670 TFT.background(back4);
sinrab 0:ed1ba99f7b14 671 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 672 }
sinrab 0:ed1ba99f7b14 673 printf(" I real = %06.1f set up dot \n", Ireal); // I real A1 hi
sinrab 0:ed1ba99f7b14 674 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 675 if (kline==5) {
sinrab 0:ed1ba99f7b14 676 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 677 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 678 } else {
sinrab 0:ed1ba99f7b14 679 TFT.background(back4);
sinrab 0:ed1ba99f7b14 680 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 681 }
sinrab 3:791cf9a867d1 682 printf(" U 30v = %06.3f set zero \n", U30); // U set A2 zero
sinrab 0:ed1ba99f7b14 683 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 684 if (kline==6) {
sinrab 0:ed1ba99f7b14 685 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 686 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 687 } else {
sinrab 0:ed1ba99f7b14 688 TFT.background(back4);
sinrab 0:ed1ba99f7b14 689 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 690 }
sinrab 3:791cf9a867d1 691 printf(" U 30v = %06.3f set up dot \n", U30); // U set A2 hi
sinrab 0:ed1ba99f7b14 692 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 693 if (kline==7) {
sinrab 0:ed1ba99f7b14 694 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 695 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 696 } else {
sinrab 0:ed1ba99f7b14 697 TFT.background(back4);
sinrab 0:ed1ba99f7b14 698 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 699 }
sinrab 3:791cf9a867d1 700 printf("---\n"); // I set A3 zero
sinrab 0:ed1ba99f7b14 701 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 702 if (kline==8) {
sinrab 0:ed1ba99f7b14 703 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 704 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 705 } else {
sinrab 0:ed1ba99f7b14 706 TFT.background(back4);
sinrab 0:ed1ba99f7b14 707 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 708 }
sinrab 3:791cf9a867d1 709 printf("---\n"); // I set A3 hi
sinrab 0:ed1ba99f7b14 710 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 711 if (kline==9) {
sinrab 0:ed1ba99f7b14 712 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 713 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 714 } else {
sinrab 0:ed1ba99f7b14 715 TFT.background(back4);
sinrab 0:ed1ba99f7b14 716 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 717 }
sinrab 3:791cf9a867d1 718 printf("---\n"); // U usb A4 zero
sinrab 0:ed1ba99f7b14 719 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 720 if (kline==10) {
sinrab 0:ed1ba99f7b14 721 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 722 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 723 } else {
sinrab 0:ed1ba99f7b14 724 TFT.background(back4);
sinrab 0:ed1ba99f7b14 725 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 726 }
sinrab 3:791cf9a867d1 727 printf("---\n"); // U usb A4 hi
sinrab 0:ed1ba99f7b14 728 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 729 if (kline==11) {
sinrab 0:ed1ba99f7b14 730 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 731 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 732 } else {
sinrab 0:ed1ba99f7b14 733 TFT.background(back4);
sinrab 0:ed1ba99f7b14 734 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 735 }
sinrab 3:791cf9a867d1 736 printf("---\n"); // I usb A5 zero
sinrab 0:ed1ba99f7b14 737 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 738 if (kline==12) {
sinrab 0:ed1ba99f7b14 739 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 740 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 741 } else {
sinrab 0:ed1ba99f7b14 742 TFT.background(back4);
sinrab 0:ed1ba99f7b14 743 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 744 }
sinrab 3:791cf9a867d1 745 printf("---\n"); // I usb A5 hi
sinrab 0:ed1ba99f7b14 746 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 747 if (kline==13) {
sinrab 0:ed1ba99f7b14 748 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 749 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 750 } else {
sinrab 0:ed1ba99f7b14 751 TFT.background(back4);
sinrab 0:ed1ba99f7b14 752 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 753 }
sinrab 0:ed1ba99f7b14 754 printf(" Load Default \n");
sinrab 0:ed1ba99f7b14 755 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 756 if (kline==14) {
sinrab 0:ed1ba99f7b14 757 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 758 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 759 } else {
sinrab 0:ed1ba99f7b14 760 TFT.background(back4);
sinrab 0:ed1ba99f7b14 761 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 762 }
sinrab 0:ed1ba99f7b14 763 printf(" Save all to flash memory \n");
sinrab 0:ed1ba99f7b14 764 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 765 if (kline==15) {
sinrab 0:ed1ba99f7b14 766 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 767 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 768 } else {
sinrab 0:ed1ba99f7b14 769 TFT.background(back4);
sinrab 0:ed1ba99f7b14 770 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 771 }
sinrab 0:ed1ba99f7b14 772 printf(" Exit \n");
sinrab 0:ed1ba99f7b14 773 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 774 TFT.background(back4);
sinrab 0:ed1ba99f7b14 775 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 776 printf("--------------------------- \n");
sinrab 0:ed1ba99f7b14 777
sinrab 0:ed1ba99f7b14 778
sinrab 0:ed1ba99f7b14 779 }
sinrab 0:ed1ba99f7b14 780 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 781 void drawScreen5(void) //экран 5 Настройки главная
sinrab 0:ed1ba99f7b14 782 {
sinrab 0:ed1ba99f7b14 783 if (complit==0) {
sinrab 0:ed1ba99f7b14 784 TFT.background(back5);
sinrab 0:ed1ba99f7b14 785 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 786 TFT.cls();
sinrab 0:ed1ba99f7b14 787 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 788 }
sinrab 0:ed1ba99f7b14 789
sinrab 0:ed1ba99f7b14 790 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 791 TFT.background(back5);
sinrab 0:ed1ba99f7b14 792 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 793 TFT.locate(0, 0);
sinrab 0:ed1ba99f7b14 794 TFT.set_font((unsigned char*) Courier8x13);
sinrab 3:791cf9a867d1 795 printf(" Settings \n");
sinrab 3:791cf9a867d1 796 printf("--------------------------------------- \n");
sinrab 0:ed1ba99f7b14 797 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 798 if (mline==1) {
sinrab 0:ed1ba99f7b14 799 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 800 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 801 } else {
sinrab 0:ed1ba99f7b14 802 TFT.background(back5);
sinrab 0:ed1ba99f7b14 803 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 804 }
sinrab 3:791cf9a867d1 805 printf(" Set Time \n"); // 1
sinrab 0:ed1ba99f7b14 806 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 807 if (mline==2) {
sinrab 0:ed1ba99f7b14 808 if (pmenu==1) {
sinrab 0:ed1ba99f7b14 809 TFT.background(back5_iset);
sinrab 0:ed1ba99f7b14 810 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 811 } else {
sinrab 0:ed1ba99f7b14 812 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 813 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 814 }
sinrab 0:ed1ba99f7b14 815 } else {
sinrab 0:ed1ba99f7b14 816 TFT.background(back5);
sinrab 0:ed1ba99f7b14 817 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 818 }
sinrab 3:791cf9a867d1 819 printf(" Backlight brightness = %03.0f \n", fanspeed*100); // 1
sinrab 0:ed1ba99f7b14 820 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 821 if (mline==3) {
sinrab 0:ed1ba99f7b14 822 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 823 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 824 } else {
sinrab 0:ed1ba99f7b14 825 TFT.background(back5);
sinrab 0:ed1ba99f7b14 826 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 827 }
sinrab 3:791cf9a867d1 828 printf(" Sound beep \n"); // 1
sinrab 0:ed1ba99f7b14 829 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 830 if (mline==4) {
sinrab 3:791cf9a867d1 831 if (pmenu==1) {
sinrab 3:791cf9a867d1 832 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 833 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 834 } else {
sinrab 3:791cf9a867d1 835 TFT.background(back5_i);
sinrab 3:791cf9a867d1 836 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 837 }
sinrab 0:ed1ba99f7b14 838 } else {
sinrab 0:ed1ba99f7b14 839 TFT.background(back5);
sinrab 0:ed1ba99f7b14 840 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 841 }
sinrab 3:791cf9a867d1 842 printf(" Fan start - t %02.0f 'c \n", tempstart); // 1 tempstart
sinrab 0:ed1ba99f7b14 843 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 844 if (mline==5) {
sinrab 3:791cf9a867d1 845 if (pmenu==1) {
sinrab 3:791cf9a867d1 846 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 847 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 848 } else {
sinrab 3:791cf9a867d1 849 TFT.background(back5_i);
sinrab 3:791cf9a867d1 850 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 851 }
sinrab 0:ed1ba99f7b14 852 } else {
sinrab 0:ed1ba99f7b14 853 TFT.background(back5);
sinrab 0:ed1ba99f7b14 854 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 855 }
sinrab 3:791cf9a867d1 856 printf(" Fan full speed - t %02.0f 'c \n", tempfull); // 1 tempfull
sinrab 0:ed1ba99f7b14 857 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 858 if (mline==6) {
sinrab 3:791cf9a867d1 859 if (pmenu==1) {
sinrab 3:791cf9a867d1 860 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 861 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 862 } else {
sinrab 3:791cf9a867d1 863 TFT.background(back5_i);
sinrab 3:791cf9a867d1 864 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 865 }
sinrab 0:ed1ba99f7b14 866 } else {
sinrab 0:ed1ba99f7b14 867 TFT.background(back5);
sinrab 0:ed1ba99f7b14 868 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 869 }
sinrab 3:791cf9a867d1 870 printf(" Power cut off - t %02.0f 'c \n", tempcutoff); // 1 tempcutoff
sinrab 0:ed1ba99f7b14 871 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 872 if (mline==7) {
sinrab 3:791cf9a867d1 873 if (pmenu==1) {
sinrab 3:791cf9a867d1 874 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 875 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 876 } else {
sinrab 3:791cf9a867d1 877 TFT.background(back5_i);
sinrab 3:791cf9a867d1 878 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 879 }
sinrab 0:ed1ba99f7b14 880 } else {
sinrab 0:ed1ba99f7b14 881 TFT.background(back5);
sinrab 0:ed1ba99f7b14 882 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 883 }
sinrab 3:791cf9a867d1 884 if (rdown_on==1){
sinrab 3:791cf9a867d1 885 printf(" Voltmeter adjustment on R %s \n", ron); // падение на R вкл выкл
sinrab 3:791cf9a867d1 886 } else {
sinrab 3:791cf9a867d1 887 printf(" Voltmeter adjustment on R %s \n", roff);
sinrab 3:791cf9a867d1 888 }
sinrab 0:ed1ba99f7b14 889 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 890 if (mline==8) {
sinrab 3:791cf9a867d1 891 if (pmenu==1) {
sinrab 3:791cf9a867d1 892 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 893 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 894 } else {
sinrab 3:791cf9a867d1 895 TFT.background(back5_i);
sinrab 3:791cf9a867d1 896 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 897 }
sinrab 0:ed1ba99f7b14 898 } else {
sinrab 0:ed1ba99f7b14 899 TFT.background(back5);
sinrab 0:ed1ba99f7b14 900 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 901 }
sinrab 3:791cf9a867d1 902 printf(" Current sense shunt, R = %05.3f om\n", rdown); // значения сопротивления шунта
sinrab 0:ed1ba99f7b14 903 //------- -----------------------------*---------------------------
sinrab 0:ed1ba99f7b14 904 if (mline==9) {
sinrab 0:ed1ba99f7b14 905 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 906 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 907 } else {
sinrab 0:ed1ba99f7b14 908 TFT.background(back5);
sinrab 0:ed1ba99f7b14 909 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 910 }
sinrab 3:791cf9a867d1 911 printf(" Calibration I, U \n"); // 1
sinrab 0:ed1ba99f7b14 912 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 913 if (mline==10) {
sinrab 0:ed1ba99f7b14 914 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 915 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 916 } else {
sinrab 0:ed1ba99f7b14 917 TFT.background(back5);
sinrab 0:ed1ba99f7b14 918 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 919 }
sinrab 3:791cf9a867d1 920 printf(" Data analog in, noise \n"); // 1
sinrab 0:ed1ba99f7b14 921 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 922 if (mline==11) {
sinrab 3:791cf9a867d1 923 if (pmenu==1) {
sinrab 3:791cf9a867d1 924 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 925 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 926 } else {
sinrab 3:791cf9a867d1 927 TFT.background(back5_i);
sinrab 3:791cf9a867d1 928 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 929 }
sinrab 0:ed1ba99f7b14 930 } else {
sinrab 0:ed1ba99f7b14 931 TFT.background(back5);
sinrab 0:ed1ba99f7b14 932 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 933 }
sinrab 3:791cf9a867d1 934 printf(" U max & U up dot calibration = %02.0d v\n", umax); // U max and U calibration
sinrab 0:ed1ba99f7b14 935 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 936 if (mline==12) {
sinrab 0:ed1ba99f7b14 937 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 938 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 939 } else {
sinrab 0:ed1ba99f7b14 940 TFT.background(back5);
sinrab 0:ed1ba99f7b14 941 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 942 }
sinrab 3:791cf9a867d1 943 printf(" Screen saver \n"); // 1
sinrab 0:ed1ba99f7b14 944 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 945 if (mline==13) {
sinrab 0:ed1ba99f7b14 946 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 947 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 948 } else {
sinrab 0:ed1ba99f7b14 949 TFT.background(back5);
sinrab 0:ed1ba99f7b14 950 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 951 }
sinrab 3:791cf9a867d1 952 printf(" \n"); // 1
sinrab 0:ed1ba99f7b14 953 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 954 if (mline==14) {
sinrab 0:ed1ba99f7b14 955 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 956 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 957 } else {
sinrab 0:ed1ba99f7b14 958 TFT.background(back5);
sinrab 0:ed1ba99f7b14 959 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 960 }
sinrab 3:791cf9a867d1 961 printf(" \n"); // 1
sinrab 0:ed1ba99f7b14 962 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 963 if (mline==15) {
sinrab 0:ed1ba99f7b14 964 TFT.background(0xFB2C);
sinrab 0:ed1ba99f7b14 965 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 966 } else {
sinrab 0:ed1ba99f7b14 967 TFT.background(back5);
sinrab 0:ed1ba99f7b14 968 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 969 }
sinrab 3:791cf9a867d1 970 printf(" Exit \n");
sinrab 0:ed1ba99f7b14 971 //--------------------------------------*-------------------------
sinrab 0:ed1ba99f7b14 972 TFT.background(back5);
sinrab 0:ed1ba99f7b14 973 TFT.foreground(text5);
sinrab 3:791cf9a867d1 974 printf("--------------------------------------- \n");
sinrab 0:ed1ba99f7b14 975
sinrab 0:ed1ba99f7b14 976
sinrab 0:ed1ba99f7b14 977 }
sinrab 0:ed1ba99f7b14 978 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 979 void drawScreen6(void) //экран 6
sinrab 0:ed1ba99f7b14 980 {
sinrab 0:ed1ba99f7b14 981 if (complit==0) {
sinrab 3:791cf9a867d1 982 TFT.background(Black);
sinrab 3:791cf9a867d1 983 TFT.foreground(White);
sinrab 0:ed1ba99f7b14 984 TFT.cls();
sinrab 0:ed1ba99f7b14 985 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 986 }
sinrab 3:791cf9a867d1 987 TFT.set_font((unsigned char*) digi36x44);
sinrab 3:791cf9a867d1 988 TFT.foreground(Green);
sinrab 3:791cf9a867d1 989 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 990 TFT.printf("%06.1f", Ireal);
sinrab 3:791cf9a867d1 991 TFT.locate(10, 85);
sinrab 3:791cf9a867d1 992 TFT.printf("%05.3f", U5);
sinrab 3:791cf9a867d1 993
sinrab 3:791cf9a867d1 994 TFT.locate(10, 150);
sinrab 3:791cf9a867d1 995 TFT.printf("%d", int(U30));
sinrab 0:ed1ba99f7b14 996
sinrab 0:ed1ba99f7b14 997
sinrab 0:ed1ba99f7b14 998 }
sinrab 0:ed1ba99f7b14 999 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1000 void drawScreen7(void) //экран 7
sinrab 0:ed1ba99f7b14 1001 {
sinrab 0:ed1ba99f7b14 1002 if (complit==0) {
sinrab 0:ed1ba99f7b14 1003 TFT.background(Blue);
sinrab 0:ed1ba99f7b14 1004 TFT.foreground(Black);
sinrab 0:ed1ba99f7b14 1005 TFT.cls();
sinrab 0:ed1ba99f7b14 1006 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 1007 }
sinrab 0:ed1ba99f7b14 1008
sinrab 0:ed1ba99f7b14 1009
sinrab 0:ed1ba99f7b14 1010 }
sinrab 0:ed1ba99f7b14 1011 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1012 void drawScreen8(void) //экран 8
sinrab 0:ed1ba99f7b14 1013 {
sinrab 0:ed1ba99f7b14 1014 if (complit==0) {
sinrab 0:ed1ba99f7b14 1015 TFT.background(Blue);
sinrab 0:ed1ba99f7b14 1016 TFT.foreground(Black);
sinrab 0:ed1ba99f7b14 1017 TFT.cls();
sinrab 0:ed1ba99f7b14 1018 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 1019 }
sinrab 0:ed1ba99f7b14 1020
sinrab 0:ed1ba99f7b14 1021
sinrab 0:ed1ba99f7b14 1022 }
sinrab 0:ed1ba99f7b14 1023 //------------------------------------------------------------------------------------------------------------
sinrab 2:d20b1ef35d3f 1024 float map(float x, float in_min, float in_max, float out_min, float out_max) // функция масштабирования
sinrab 0:ed1ba99f7b14 1025 {
sinrab 0:ed1ba99f7b14 1026 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
sinrab 0:ed1ba99f7b14 1027 }
sinrab 0:ed1ba99f7b14 1028 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1029 float avgAin0() // функция среднего значения с входа A0
sinrab 0:ed1ba99f7b14 1030 {
sinrab 0:ed1ba99f7b14 1031 int m = 100;
sinrab 0:ed1ba99f7b14 1032 float value[m];
sinrab 0:ed1ba99f7b14 1033 float max;
sinrab 0:ed1ba99f7b14 1034 float min;
sinrab 0:ed1ba99f7b14 1035 double itg;
sinrab 0:ed1ba99f7b14 1036 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1037 min = 3.3;
sinrab 0:ed1ba99f7b14 1038 for (int i=0; i<m; i++) {
sinrab 0:ed1ba99f7b14 1039 value[i] = ainA0;
sinrab 0:ed1ba99f7b14 1040 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1041 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1042 itg += value[i];
sinrab 0:ed1ba99f7b14 1043 }
sinrab 0:ed1ba99f7b14 1044 noisea0 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1045 return itg/m;
sinrab 0:ed1ba99f7b14 1046 }
sinrab 0:ed1ba99f7b14 1047 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1048 float avgAin1() // функция среднего значения с входа A1
sinrab 0:ed1ba99f7b14 1049 {
sinrab 0:ed1ba99f7b14 1050 float value[100];
sinrab 0:ed1ba99f7b14 1051 float max;
sinrab 0:ed1ba99f7b14 1052 float min;
sinrab 0:ed1ba99f7b14 1053 double itg;
sinrab 0:ed1ba99f7b14 1054 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1055 min = 3.3;
sinrab 0:ed1ba99f7b14 1056 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1057 value[i] = ainA1;
sinrab 0:ed1ba99f7b14 1058 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1059 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1060 itg += value[i];
sinrab 0:ed1ba99f7b14 1061 }
sinrab 0:ed1ba99f7b14 1062 noisea1 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1063 return itg/100;
sinrab 0:ed1ba99f7b14 1064 }
sinrab 0:ed1ba99f7b14 1065 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1066 float avgAin2() // функция среднего значения с входа A2
sinrab 0:ed1ba99f7b14 1067 {
sinrab 0:ed1ba99f7b14 1068 float value[100];
sinrab 0:ed1ba99f7b14 1069 float max;
sinrab 0:ed1ba99f7b14 1070 float min;
sinrab 0:ed1ba99f7b14 1071 double itg;
sinrab 0:ed1ba99f7b14 1072 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1073 min = 3.3;
sinrab 0:ed1ba99f7b14 1074 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1075 value[i] = ainA2;
sinrab 0:ed1ba99f7b14 1076 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1077 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1078 itg += value[i];
sinrab 0:ed1ba99f7b14 1079 }
sinrab 0:ed1ba99f7b14 1080 noisea2 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1081 return itg/100;
sinrab 0:ed1ba99f7b14 1082 }
sinrab 0:ed1ba99f7b14 1083 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1084 float avgAin3() // функция среднего значения с входа A3
sinrab 0:ed1ba99f7b14 1085 {
sinrab 0:ed1ba99f7b14 1086 float value[100];
sinrab 0:ed1ba99f7b14 1087 float max;
sinrab 0:ed1ba99f7b14 1088 float min;
sinrab 0:ed1ba99f7b14 1089 double itg;
sinrab 0:ed1ba99f7b14 1090 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1091 min = 3.3;
sinrab 0:ed1ba99f7b14 1092 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1093 value[i] = ainA3;
sinrab 0:ed1ba99f7b14 1094 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1095 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1096 itg += value[i];
sinrab 0:ed1ba99f7b14 1097 }
sinrab 0:ed1ba99f7b14 1098 noisea3 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1099 return itg/100;
sinrab 0:ed1ba99f7b14 1100 }
sinrab 3:791cf9a867d1 1101 /*/------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1102 float avgAin4() // функция среднего значения с входа A4
sinrab 0:ed1ba99f7b14 1103 {
sinrab 0:ed1ba99f7b14 1104 float value[100];
sinrab 0:ed1ba99f7b14 1105 float max;
sinrab 0:ed1ba99f7b14 1106 float min;
sinrab 0:ed1ba99f7b14 1107 double itg;
sinrab 0:ed1ba99f7b14 1108 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1109 min = 3.3;
sinrab 0:ed1ba99f7b14 1110 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1111 value[i] = ainA4;
sinrab 0:ed1ba99f7b14 1112 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1113 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1114 itg += value[i];
sinrab 0:ed1ba99f7b14 1115 }
sinrab 0:ed1ba99f7b14 1116 noisea4 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1117 return itg/100;
sinrab 0:ed1ba99f7b14 1118 }
sinrab 0:ed1ba99f7b14 1119 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1120 float avgAin5() // функция среднего значения с входа A5
sinrab 0:ed1ba99f7b14 1121 {
sinrab 0:ed1ba99f7b14 1122 float value[100];
sinrab 0:ed1ba99f7b14 1123 float max;
sinrab 0:ed1ba99f7b14 1124 float min;
sinrab 0:ed1ba99f7b14 1125 double itg;
sinrab 0:ed1ba99f7b14 1126 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1127 min = 3.3;
sinrab 0:ed1ba99f7b14 1128 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1129 value[i] = ainA5;
sinrab 0:ed1ba99f7b14 1130 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1131 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1132 itg += value[i];
sinrab 0:ed1ba99f7b14 1133 }
sinrab 0:ed1ba99f7b14 1134 noisea5 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1135 return itg/100;
sinrab 0:ed1ba99f7b14 1136 }
sinrab 3:791cf9a867d1 1137 //------------------------------------------------------------------------------------------------------------/
sinrab 0:ed1ba99f7b14 1138 void drawMainScale(void) {
sinrab 0:ed1ba99f7b14 1139 a
sinrab 0:ed1ba99f7b14 1140 int a = avg*1000;
sinrab 0:ed1ba99f7b14 1141 b = mapIOIO(c, 0, 100, 0, 220);
sinrab 0:ed1ba99f7b14 1142
sinrab 0:ed1ba99f7b14 1143 TFT.fillrect(10, 10, (b+10), 20, Red); // аналоговая шкала 1
sinrab 0:ed1ba99f7b14 1144 TFT.fillrect((b+10), 10, 230, 20, Black);
sinrab 0:ed1ba99f7b14 1145 }
sinrab 0:ed1ba99f7b14 1146 //------------------------------------------------------------------------------------------------------------*/
sinrab 0:ed1ba99f7b14 1147 void powerButton(void) // при нажатии кнопки питания
sinrab 0:ed1ba99f7b14 1148 {
sinrab 0:ed1ba99f7b14 1149 powerMosfet=!powerMosfet;
sinrab 0:ed1ba99f7b14 1150 if (powerMosfet==1) {
sinrab 0:ed1ba99f7b14 1151 tstart = treal = time(NULL);
sinrab 0:ed1ba99f7b14 1152 h=m=s=0;
sinrab 0:ed1ba99f7b14 1153 }
sinrab 0:ed1ba99f7b14 1154 if (powerMosfet==0) {
sinrab 0:ed1ba99f7b14 1155
sinrab 0:ed1ba99f7b14 1156 }
sinrab 0:ed1ba99f7b14 1157 pb=0;
sinrab 0:ed1ba99f7b14 1158 }
sinrab 0:ed1ba99f7b14 1159 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1160 void dataProcessing(void) // обработка и подготовка данных с аналоговых входов
sinrab 0:ed1ba99f7b14 1161 {
sinrab 0:ed1ba99f7b14 1162 /*t.reset();// FPS
sinrab 0:ed1ba99f7b14 1163 t.start();// FPS*/
sinrab 0:ed1ba99f7b14 1164
sinrab 0:ed1ba99f7b14 1165 in0 = avgAin0();
sinrab 0:ed1ba99f7b14 1166 in1 = avgAin1();
sinrab 0:ed1ba99f7b14 1167 in2 = avgAin2();
sinrab 0:ed1ba99f7b14 1168 in3 = avgAin3();
sinrab 3:791cf9a867d1 1169 //in4 = avgAin4();
sinrab 3:791cf9a867d1 1170 //in5 = avgAin5();
sinrab 0:ed1ba99f7b14 1171
sinrab 0:ed1ba99f7b14 1172 // A0 U real U = (avgAin0() - a0a) * a0k
sinrab 0:ed1ba99f7b14 1173 // A1 I real I = (avgAin1() - a1a) * a1k
sinrab 0:ed1ba99f7b14 1174 // A2 U set U = (avgAin2() - a2a) * a2k
sinrab 0:ed1ba99f7b14 1175 // A3 I set I = (avgAin3() - a3a) * a3k
sinrab 0:ed1ba99f7b14 1176 // A4 U usb U = (avgAin4() - a4a) * a4k
sinrab 0:ed1ba99f7b14 1177 // A5 I usb I = (avgAin5() - a5a) * a5k
sinrab 0:ed1ba99f7b14 1178
sinrab 0:ed1ba99f7b14 1179 Ireal = a1k*(in1-a1a);
sinrab 3:791cf9a867d1 1180 U5 = a0k*(in0-a0a);
sinrab 3:791cf9a867d1 1181 U30 = a2k*(in2-a2a);
sinrab 3:791cf9a867d1 1182 temperature = map(in3, 0.232, 0.188 , 0, 90);
sinrab 3:791cf9a867d1 1183 //Iset = a3k*(in3-a3a);
sinrab 3:791cf9a867d1 1184 //Uusb = a4k*(in4-a4a);
sinrab 3:791cf9a867d1 1185 //Iusb = a5k*(in5-a5a);
sinrab 3:791cf9a867d1 1186
sinrab 3:791cf9a867d1 1187 if (cc==1) ledcc=0;
sinrab 3:791cf9a867d1 1188 if (cc==0) ledcc=1;
sinrab 0:ed1ba99f7b14 1189
sinrab 0:ed1ba99f7b14 1190 /*t.stop();// FPS
sinrab 0:ed1ba99f7b14 1191 TFT.background(Black);// FPS
sinrab 0:ed1ba99f7b14 1192 TFT.foreground(Green);// FPS
sinrab 0:ed1ba99f7b14 1193 TFT.set_font((unsigned char*) Courier8x13);// FPS
sinrab 0:ed1ba99f7b14 1194 TFT.locate(260,225);// FPS
sinrab 0:ed1ba99f7b14 1195 TFT.printf("%0.2f", (1/t.read()));// FPS*/
sinrab 0:ed1ba99f7b14 1196 }
sinrab 0:ed1ba99f7b14 1197 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1198 void buttonUse(void) // обработка нажатий кнопок
sinrab 0:ed1ba99f7b14 1199 {
sinrab 0:ed1ba99f7b14 1200 int one=0; // для обработки одной кнопки за раз
sinrab 0:ed1ba99f7b14 1201 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1202 if (Screen==1 & one==0) { //главный экран
sinrab 0:ed1ba99f7b14 1203 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 1204 //wait(1);
sinrab 0:ed1ba99f7b14 1205 Screen=5; // 5 главная настройки
sinrab 0:ed1ba99f7b14 1206 complit=0;
sinrab 0:ed1ba99f7b14 1207 }
sinrab 0:ed1ba99f7b14 1208 if (buttonDown==0) { // Down
sinrab 3:791cf9a867d1 1209 Screen=6; // 2
sinrab 0:ed1ba99f7b14 1210 complit=0;
sinrab 0:ed1ba99f7b14 1211 }
sinrab 0:ed1ba99f7b14 1212 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1213 powerProtect=!powerProtect;
sinrab 3:791cf9a867d1 1214
sinrab 3:791cf9a867d1 1215 //cc=!cc; // для проверки
sinrab 2:d20b1ef35d3f 1216 pm=0; // С.C и C.V
sinrab 3:791cf9a867d1 1217 cs=!cs; // для проверки
sinrab 3:791cf9a867d1 1218 csp=0; // короткого замыкания
sinrab 3:791cf9a867d1 1219
sinrab 0:ed1ba99f7b14 1220 pp=0;
sinrab 0:ed1ba99f7b14 1221 wait(0.2);
sinrab 0:ed1ba99f7b14 1222 }
sinrab 0:ed1ba99f7b14 1223 one=1;
sinrab 0:ed1ba99f7b14 1224 }
sinrab 0:ed1ba99f7b14 1225 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1226 if (Screen==2 & one==0) { //экран 2 analog in, noise
sinrab 0:ed1ba99f7b14 1227 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 1228 //wait(1);
sinrab 0:ed1ba99f7b14 1229 Screen=5; //3
sinrab 0:ed1ba99f7b14 1230 complit=0;
sinrab 0:ed1ba99f7b14 1231 }
sinrab 0:ed1ba99f7b14 1232 one=1;
sinrab 0:ed1ba99f7b14 1233 }
sinrab 0:ed1ba99f7b14 1234 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1235 if (Screen==3 & one==0) { //экран 3
sinrab 1:7bc0f280c259 1236 if(nline==7 & pmenu==1){
sinrab 1:7bc0f280c259 1237 wait(0.2);
sinrab 1:7bc0f280c259 1238 pmenu=0;
sinrab 1:7bc0f280c259 1239 }
sinrab 1:7bc0f280c259 1240 if (buttonEnter==0 & pmenu==0) { // Enter
sinrab 1:7bc0f280c259 1241 pmenu=1;
sinrab 1:7bc0f280c259 1242 wait(0.2);
sinrab 1:7bc0f280c259 1243 if(nline==7){
sinrab 1:7bc0f280c259 1244 mon=mon-1;
sinrab 1:7bc0f280c259 1245 SetDateTime();
sinrab 1:7bc0f280c259 1246 mon=mon+1;
sinrab 1:7bc0f280c259 1247 }
sinrab 1:7bc0f280c259 1248 if(nline==8){
sinrab 1:7bc0f280c259 1249 pmenu=0;
sinrab 1:7bc0f280c259 1250 Screen=5;
sinrab 1:7bc0f280c259 1251 complit=0;
sinrab 1:7bc0f280c259 1252 }
sinrab 1:7bc0f280c259 1253 }
sinrab 1:7bc0f280c259 1254 if (buttonUp==0 & pmenu==0) { // Up
sinrab 1:7bc0f280c259 1255 nline--;
sinrab 1:7bc0f280c259 1256 wait(0.2);
sinrab 1:7bc0f280c259 1257 if (nline==0) nline=8;
sinrab 1:7bc0f280c259 1258 }
sinrab 1:7bc0f280c259 1259 if (buttonDown==0 & pmenu==0) { // Down
sinrab 1:7bc0f280c259 1260 nline++;
sinrab 1:7bc0f280c259 1261 wait(0.2);
sinrab 1:7bc0f280c259 1262 if (nline==9) nline=1;
sinrab 0:ed1ba99f7b14 1263 }
sinrab 1:7bc0f280c259 1264
sinrab 1:7bc0f280c259 1265 if (pmenu==1) {
sinrab 1:7bc0f280c259 1266 if (buttonEnter==0) {
sinrab 1:7bc0f280c259 1267 pmenu=0;
sinrab 1:7bc0f280c259 1268 wait(0.2);
sinrab 1:7bc0f280c259 1269 }
sinrab 1:7bc0f280c259 1270 if (buttonUp==0) {
sinrab 1:7bc0f280c259 1271 if (nline==1) {
sinrab 1:7bc0f280c259 1272 hour++;
sinrab 1:7bc0f280c259 1273 wait(0.1);
sinrab 1:7bc0f280c259 1274 }
sinrab 1:7bc0f280c259 1275 if (nline==2) {
sinrab 1:7bc0f280c259 1276 min++;
sinrab 1:7bc0f280c259 1277 wait(0.1);
sinrab 1:7bc0f280c259 1278 }
sinrab 1:7bc0f280c259 1279 if (nline==3) {
sinrab 1:7bc0f280c259 1280 sec++;
sinrab 1:7bc0f280c259 1281 wait(0.1);
sinrab 1:7bc0f280c259 1282 }
sinrab 1:7bc0f280c259 1283 if (nline==4) {
sinrab 1:7bc0f280c259 1284 day++;
sinrab 1:7bc0f280c259 1285 wait(0.1);
sinrab 1:7bc0f280c259 1286 }
sinrab 1:7bc0f280c259 1287 if (nline==5) {
sinrab 1:7bc0f280c259 1288 mon++;
sinrab 1:7bc0f280c259 1289 wait(0.1);
sinrab 1:7bc0f280c259 1290 }
sinrab 1:7bc0f280c259 1291 if (nline==6) {
sinrab 1:7bc0f280c259 1292 year++;
sinrab 1:7bc0f280c259 1293 wait(0.1);
sinrab 1:7bc0f280c259 1294 }
sinrab 1:7bc0f280c259 1295 }
sinrab 1:7bc0f280c259 1296 if (buttonDown==0) {
sinrab 1:7bc0f280c259 1297 if (nline==1) {
sinrab 1:7bc0f280c259 1298 hour--;
sinrab 1:7bc0f280c259 1299 wait(0.1);
sinrab 1:7bc0f280c259 1300 }
sinrab 1:7bc0f280c259 1301 if (nline==2) {
sinrab 1:7bc0f280c259 1302 min--;
sinrab 1:7bc0f280c259 1303 wait(0.1);
sinrab 1:7bc0f280c259 1304 }
sinrab 1:7bc0f280c259 1305 if (nline==3) {
sinrab 1:7bc0f280c259 1306 sec--;
sinrab 1:7bc0f280c259 1307 wait(0.1);
sinrab 1:7bc0f280c259 1308 }
sinrab 1:7bc0f280c259 1309 if (nline==4) {
sinrab 1:7bc0f280c259 1310 day--;
sinrab 1:7bc0f280c259 1311 wait(0.1);
sinrab 1:7bc0f280c259 1312 }
sinrab 1:7bc0f280c259 1313 if (nline==5) {
sinrab 1:7bc0f280c259 1314 mon--;
sinrab 1:7bc0f280c259 1315 wait(0.1);
sinrab 1:7bc0f280c259 1316 }
sinrab 1:7bc0f280c259 1317 if (nline==6) {
sinrab 1:7bc0f280c259 1318 year--;
sinrab 1:7bc0f280c259 1319 wait(0.1);
sinrab 1:7bc0f280c259 1320 }
sinrab 1:7bc0f280c259 1321 }
sinrab 1:7bc0f280c259 1322
sinrab 1:7bc0f280c259 1323 one=1;
sinrab 1:7bc0f280c259 1324 }
sinrab 0:ed1ba99f7b14 1325 }
sinrab 0:ed1ba99f7b14 1326 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1327 if (Screen==4 & one==0) { //экран меню Калибровка
sinrab 0:ed1ba99f7b14 1328 if (buttonEnter==0) { // Enter set!
sinrab 3:791cf9a867d1 1329
sinrab 3:791cf9a867d1 1330 if (kline==1) a0a = in0 - 0.0012f;
sinrab 3:791cf9a867d1 1331 if (kline==2) a0k = 1.900f/(in0-a0a); //a0k = umax/(in0-a0a);
sinrab 3:791cf9a867d1 1332
sinrab 3:791cf9a867d1 1333 if (kline==3) a1a = in1 - 0.0004f; // a1a = avgAin1() - 0.00004
sinrab 3:791cf9a867d1 1334 if (kline==4) a1k = 200/(in1 - a1a); //a1k = 1000/(avgAin1() - a1a) при 1амперах
sinrab 3:791cf9a867d1 1335
sinrab 3:791cf9a867d1 1336 if (kline==5) a2a = in2 - 0.00005f; // U 30v
sinrab 3:791cf9a867d1 1337 if (kline==6) a2k = 19.0f/(in2-a2a); // U30v
sinrab 3:791cf9a867d1 1338
sinrab 3:791cf9a867d1 1339
sinrab 3:791cf9a867d1 1340 //if (kline==7) a3a = avgAin3() - 0.0004f; //3
sinrab 3:791cf9a867d1 1341 //if (kline==8) a3k = 296/(avgAin3() - a3a); //3 Iset
sinrab 3:791cf9a867d1 1342 if (kline==9) Screen=5; //4
sinrab 3:791cf9a867d1 1343 if (kline==10) Screen=5; //4
sinrab 3:791cf9a867d1 1344 //if (kline==11) a5a = avgAin5() - 0.0004f;
sinrab 3:791cf9a867d1 1345 //if (kline==12) a5k = 5000/(avgAin5() - a5a);
sinrab 3:791cf9a867d1 1346 if (kline==13) Screen=5;// load
sinrab 3:791cf9a867d1 1347 if (kline==14) Screen=5; // save
sinrab 3:791cf9a867d1 1348 if (kline==15) Screen=5; //exit
sinrab 0:ed1ba99f7b14 1349 complit=0;
sinrab 0:ed1ba99f7b14 1350 }
sinrab 0:ed1ba99f7b14 1351
sinrab 0:ed1ba99f7b14 1352 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1353 kline--; //-
sinrab 0:ed1ba99f7b14 1354 if (kline==0) kline=15;
sinrab 0:ed1ba99f7b14 1355 }
sinrab 0:ed1ba99f7b14 1356
sinrab 0:ed1ba99f7b14 1357 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 1358 kline++; //+
sinrab 0:ed1ba99f7b14 1359 if (kline==16) kline=1;
sinrab 0:ed1ba99f7b14 1360 }
sinrab 0:ed1ba99f7b14 1361 one=1;
sinrab 0:ed1ba99f7b14 1362 }
sinrab 0:ed1ba99f7b14 1363 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1364 if (Screen==5 & one==0) { //экран 5 Настройки главная-------------------------------------------------------
sinrab 0:ed1ba99f7b14 1365 if (buttonEnter==0 & pmenu==0) { // Enter
sinrab 3:791cf9a867d1 1366
sinrab 0:ed1ba99f7b14 1367 if (mline==1) {
sinrab 1:7bc0f280c259 1368 Screen=3;
sinrab 0:ed1ba99f7b14 1369 complit=0;
sinrab 0:ed1ba99f7b14 1370 }
sinrab 3:791cf9a867d1 1371
sinrab 0:ed1ba99f7b14 1372 if (mline==2) {
sinrab 0:ed1ba99f7b14 1373 mline2=1;
sinrab 0:ed1ba99f7b14 1374 pmenu=1;
sinrab 0:ed1ba99f7b14 1375 one=1;
sinrab 0:ed1ba99f7b14 1376 wait(0.2);
sinrab 0:ed1ba99f7b14 1377 }
sinrab 3:791cf9a867d1 1378
sinrab 0:ed1ba99f7b14 1379 if (mline==3) Screen=1;
sinrab 3:791cf9a867d1 1380
sinrab 3:791cf9a867d1 1381 if (mline==4) { // вентилятор старт
sinrab 3:791cf9a867d1 1382 mline4=1;
sinrab 3:791cf9a867d1 1383 pmenu=1;
sinrab 3:791cf9a867d1 1384 one=1;
sinrab 3:791cf9a867d1 1385 wait(0.2);
sinrab 3:791cf9a867d1 1386 }
sinrab 3:791cf9a867d1 1387
sinrab 3:791cf9a867d1 1388 if (mline==5) { // вентилятор full
sinrab 3:791cf9a867d1 1389 mline5=1;
sinrab 3:791cf9a867d1 1390 pmenu=1;
sinrab 3:791cf9a867d1 1391 one=1;
sinrab 3:791cf9a867d1 1392 wait(0.2);
sinrab 3:791cf9a867d1 1393 }
sinrab 3:791cf9a867d1 1394
sinrab 3:791cf9a867d1 1395 if (mline==6) { // температура отключения нагрузки
sinrab 3:791cf9a867d1 1396 mline6=1;
sinrab 3:791cf9a867d1 1397 pmenu=1;
sinrab 3:791cf9a867d1 1398 one=1;
sinrab 3:791cf9a867d1 1399 wait(0.2);
sinrab 3:791cf9a867d1 1400 }
sinrab 3:791cf9a867d1 1401
sinrab 3:791cf9a867d1 1402 if (mline==7) { // R падение U вкл выкл
sinrab 3:791cf9a867d1 1403 rdown_on=!rdown_on;
sinrab 3:791cf9a867d1 1404 mline7=1;
sinrab 3:791cf9a867d1 1405 pmenu=1;
sinrab 3:791cf9a867d1 1406 one=1;
sinrab 3:791cf9a867d1 1407 wait(0.2);
sinrab 3:791cf9a867d1 1408 }
sinrab 3:791cf9a867d1 1409
sinrab 3:791cf9a867d1 1410 if (mline==8) { // сопротивление R номинал
sinrab 3:791cf9a867d1 1411 mline8=1;
sinrab 3:791cf9a867d1 1412 pmenu=1;
sinrab 3:791cf9a867d1 1413 one=1;
sinrab 3:791cf9a867d1 1414 wait(0.2);
sinrab 3:791cf9a867d1 1415 }
sinrab 3:791cf9a867d1 1416
sinrab 0:ed1ba99f7b14 1417 if (mline==9) { // меню калибровки
sinrab 0:ed1ba99f7b14 1418 Screen=4;
sinrab 0:ed1ba99f7b14 1419 complit=0;
sinrab 0:ed1ba99f7b14 1420 }
sinrab 3:791cf9a867d1 1421
sinrab 0:ed1ba99f7b14 1422 if (mline==10) { // меню analog in, noise
sinrab 0:ed1ba99f7b14 1423 Screen=2;
sinrab 0:ed1ba99f7b14 1424 complit=0;
sinrab 0:ed1ba99f7b14 1425 }
sinrab 3:791cf9a867d1 1426
sinrab 3:791cf9a867d1 1427 if (mline==11) { // U максимальная
sinrab 3:791cf9a867d1 1428 mline11=1;
sinrab 3:791cf9a867d1 1429 pmenu=1;
sinrab 3:791cf9a867d1 1430 one=1;
sinrab 3:791cf9a867d1 1431 wait(0.2);
sinrab 3:791cf9a867d1 1432 }
sinrab 3:791cf9a867d1 1433
sinrab 0:ed1ba99f7b14 1434 if (mline==12) Screen=1;
sinrab 3:791cf9a867d1 1435
sinrab 0:ed1ba99f7b14 1436 if (mline==13) Screen=1;
sinrab 3:791cf9a867d1 1437
sinrab 0:ed1ba99f7b14 1438 if (mline==14) Screen=1;
sinrab 3:791cf9a867d1 1439
sinrab 0:ed1ba99f7b14 1440 if (mline==15) {
sinrab 0:ed1ba99f7b14 1441 Screen=1;
sinrab 0:ed1ba99f7b14 1442 complit=0;
sinrab 0:ed1ba99f7b14 1443 }
sinrab 0:ed1ba99f7b14 1444 }
sinrab 0:ed1ba99f7b14 1445
sinrab 0:ed1ba99f7b14 1446 if (buttonUp==0 & pmenu==0) { // Up
sinrab 0:ed1ba99f7b14 1447 mline--; //-
sinrab 0:ed1ba99f7b14 1448 if (mline==0) mline=15;
sinrab 0:ed1ba99f7b14 1449 }
sinrab 0:ed1ba99f7b14 1450
sinrab 0:ed1ba99f7b14 1451 if (buttonDown==0 & pmenu==0) { // Down
sinrab 0:ed1ba99f7b14 1452 mline++; //+
sinrab 0:ed1ba99f7b14 1453 if (mline==16) mline=1;
sinrab 0:ed1ba99f7b14 1454 }
sinrab 0:ed1ba99f7b14 1455
sinrab 0:ed1ba99f7b14 1456 //---------подменю яркость подсветки
sinrab 0:ed1ba99f7b14 1457 if (mline2==1) {
sinrab 0:ed1ba99f7b14 1458 int i=0;
sinrab 3:791cf9a867d1 1459 if (buttonUp==0 & fanspeed<1) {
sinrab 3:791cf9a867d1 1460 if(fanspeed >= 0.09f & i==0) {
sinrab 3:791cf9a867d1 1461 fanspeed+=0.1f;
sinrab 3:791cf9a867d1 1462 fan=fanspeed;
sinrab 0:ed1ba99f7b14 1463 i=1;
sinrab 0:ed1ba99f7b14 1464 }
sinrab 3:791cf9a867d1 1465 if(fanspeed < 0.09f & i==0) {
sinrab 3:791cf9a867d1 1466 fanspeed+=0.01f;
sinrab 3:791cf9a867d1 1467 fan=fanspeed;
sinrab 0:ed1ba99f7b14 1468 i=1;
sinrab 0:ed1ba99f7b14 1469 }
sinrab 0:ed1ba99f7b14 1470
sinrab 0:ed1ba99f7b14 1471 }
sinrab 0:ed1ba99f7b14 1472
sinrab 3:791cf9a867d1 1473 if (buttonDown==0 & fanspeed>0.01f) {
sinrab 3:791cf9a867d1 1474 if(fanspeed <= 0.1f & i==0) {
sinrab 3:791cf9a867d1 1475 fanspeed-=0.01f;
sinrab 3:791cf9a867d1 1476 fan=fanspeed;
sinrab 0:ed1ba99f7b14 1477 i=1;
sinrab 0:ed1ba99f7b14 1478 }
sinrab 3:791cf9a867d1 1479 if(fanspeed > 0.1f & i==0) {
sinrab 3:791cf9a867d1 1480 fanspeed-=0.1f;
sinrab 3:791cf9a867d1 1481 fan=fanspeed;
sinrab 0:ed1ba99f7b14 1482 i=1;
sinrab 0:ed1ba99f7b14 1483 }
sinrab 0:ed1ba99f7b14 1484 }
sinrab 0:ed1ba99f7b14 1485
sinrab 0:ed1ba99f7b14 1486 if (buttonEnter==0) {
sinrab 0:ed1ba99f7b14 1487 mline2=0;
sinrab 0:ed1ba99f7b14 1488 pmenu=0;
sinrab 0:ed1ba99f7b14 1489 }
sinrab 0:ed1ba99f7b14 1490 }
sinrab 3:791cf9a867d1 1491 //------------------------------------ tempstart
sinrab 3:791cf9a867d1 1492 if (mline4==1) {
sinrab 3:791cf9a867d1 1493 if (buttonUp==0){
sinrab 3:791cf9a867d1 1494 tempstart++;
sinrab 3:791cf9a867d1 1495 wait(0.1);
sinrab 3:791cf9a867d1 1496 }
sinrab 3:791cf9a867d1 1497 if (buttonDown==0){
sinrab 3:791cf9a867d1 1498 tempstart--;
sinrab 3:791cf9a867d1 1499 wait(0.1);
sinrab 3:791cf9a867d1 1500 }
sinrab 3:791cf9a867d1 1501 if (buttonEnter==0) {
sinrab 3:791cf9a867d1 1502 mline4=0;
sinrab 3:791cf9a867d1 1503 pmenu=0;
sinrab 3:791cf9a867d1 1504 }
sinrab 3:791cf9a867d1 1505 }
sinrab 3:791cf9a867d1 1506 //------------------------------------ tempfull
sinrab 3:791cf9a867d1 1507 if (mline5==1) {
sinrab 3:791cf9a867d1 1508 if (buttonUp==0){
sinrab 3:791cf9a867d1 1509 tempfull++;
sinrab 3:791cf9a867d1 1510 wait(0.1);
sinrab 3:791cf9a867d1 1511 }
sinrab 3:791cf9a867d1 1512 if (buttonDown==0){
sinrab 3:791cf9a867d1 1513 tempfull--;
sinrab 3:791cf9a867d1 1514 wait(0.1);
sinrab 3:791cf9a867d1 1515 }
sinrab 3:791cf9a867d1 1516 if (buttonEnter==0) {
sinrab 3:791cf9a867d1 1517 mline5=0;
sinrab 3:791cf9a867d1 1518 pmenu=0;
sinrab 3:791cf9a867d1 1519 }
sinrab 3:791cf9a867d1 1520 }
sinrab 3:791cf9a867d1 1521 //------------------------------------ tempcutoff
sinrab 3:791cf9a867d1 1522 if (mline6==1) {
sinrab 3:791cf9a867d1 1523 if (buttonUp==0){
sinrab 3:791cf9a867d1 1524 tempcutoff++;
sinrab 3:791cf9a867d1 1525 wait(0.1);
sinrab 3:791cf9a867d1 1526 }
sinrab 3:791cf9a867d1 1527 if (buttonDown==0){
sinrab 3:791cf9a867d1 1528 tempcutoff--;
sinrab 3:791cf9a867d1 1529 wait(0.1);
sinrab 3:791cf9a867d1 1530 }
sinrab 3:791cf9a867d1 1531 if (buttonEnter==0) {
sinrab 3:791cf9a867d1 1532 mline6=0;
sinrab 3:791cf9a867d1 1533 pmenu=0;
sinrab 3:791cf9a867d1 1534 }
sinrab 3:791cf9a867d1 1535 }
sinrab 3:791cf9a867d1 1536 //------------------------------------ падение на R вкл выкл
sinrab 3:791cf9a867d1 1537 if (mline7==1 & one==0) {
sinrab 3:791cf9a867d1 1538 wait(0.1);
sinrab 3:791cf9a867d1 1539 mline7=0;
sinrab 3:791cf9a867d1 1540 pmenu=0;
sinrab 3:791cf9a867d1 1541 }
sinrab 3:791cf9a867d1 1542 //------------------------------------ сопротивление резистора
sinrab 3:791cf9a867d1 1543 if (mline8==1) {
sinrab 3:791cf9a867d1 1544 if (buttonUp==0){
sinrab 3:791cf9a867d1 1545 rdown=rdown+0.001f;
sinrab 3:791cf9a867d1 1546 wait(0.1);
sinrab 3:791cf9a867d1 1547 }
sinrab 3:791cf9a867d1 1548 if (buttonDown==0){
sinrab 3:791cf9a867d1 1549 rdown=rdown-0.001f;
sinrab 3:791cf9a867d1 1550 wait(0.1);
sinrab 3:791cf9a867d1 1551 }
sinrab 3:791cf9a867d1 1552 if (buttonEnter==0) {
sinrab 3:791cf9a867d1 1553 mline8=0;
sinrab 3:791cf9a867d1 1554 pmenu=0;
sinrab 3:791cf9a867d1 1555 }
sinrab 3:791cf9a867d1 1556 }
sinrab 3:791cf9a867d1 1557 //------------------------------------ U max
sinrab 3:791cf9a867d1 1558 if (mline11==1) {
sinrab 3:791cf9a867d1 1559 if (buttonUp==0){
sinrab 3:791cf9a867d1 1560 umax++;
sinrab 3:791cf9a867d1 1561 wait(0.1);
sinrab 3:791cf9a867d1 1562 }
sinrab 3:791cf9a867d1 1563 if (buttonDown==0){
sinrab 3:791cf9a867d1 1564 umax--;
sinrab 3:791cf9a867d1 1565 wait(0.1);
sinrab 3:791cf9a867d1 1566 }
sinrab 3:791cf9a867d1 1567 if (buttonEnter==0) {
sinrab 3:791cf9a867d1 1568 mline11=0;
sinrab 3:791cf9a867d1 1569 pmenu=0;
sinrab 3:791cf9a867d1 1570 }
sinrab 3:791cf9a867d1 1571 }
sinrab 0:ed1ba99f7b14 1572 //------------------------------------
sinrab 0:ed1ba99f7b14 1573 one=1;
sinrab 3:791cf9a867d1 1574 //------------------------------------
sinrab 0:ed1ba99f7b14 1575
sinrab 0:ed1ba99f7b14 1576 }
sinrab 0:ed1ba99f7b14 1577 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1578 if (Screen==6 & one==0) { //экран 6
sinrab 0:ed1ba99f7b14 1579 if (buttonEnter==0) { // Enter
sinrab 3:791cf9a867d1 1580 Screen=1;
sinrab 3:791cf9a867d1 1581 complit=0;
sinrab 0:ed1ba99f7b14 1582 }
sinrab 0:ed1ba99f7b14 1583
sinrab 0:ed1ba99f7b14 1584 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1585 }
sinrab 0:ed1ba99f7b14 1586
sinrab 0:ed1ba99f7b14 1587 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 1588 }
sinrab 0:ed1ba99f7b14 1589 one=1;
sinrab 0:ed1ba99f7b14 1590
sinrab 0:ed1ba99f7b14 1591 }
sinrab 0:ed1ba99f7b14 1592 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1593 if (Screen==7 & one==0) { //экран 7
sinrab 0:ed1ba99f7b14 1594 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 1595 }
sinrab 0:ed1ba99f7b14 1596
sinrab 0:ed1ba99f7b14 1597 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1598 }
sinrab 0:ed1ba99f7b14 1599
sinrab 0:ed1ba99f7b14 1600 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 1601 }
sinrab 0:ed1ba99f7b14 1602 one=1;
sinrab 0:ed1ba99f7b14 1603
sinrab 0:ed1ba99f7b14 1604 }
sinrab 0:ed1ba99f7b14 1605 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1606 if (Screen==8 & one==0) { //экран 8
sinrab 0:ed1ba99f7b14 1607 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 1608 }
sinrab 0:ed1ba99f7b14 1609
sinrab 0:ed1ba99f7b14 1610 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1611 }
sinrab 0:ed1ba99f7b14 1612
sinrab 0:ed1ba99f7b14 1613 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 1614 }
sinrab 0:ed1ba99f7b14 1615 one=1;
sinrab 0:ed1ba99f7b14 1616
sinrab 0:ed1ba99f7b14 1617 }
sinrab 0:ed1ba99f7b14 1618 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1619 }
sinrab 0:ed1ba99f7b14 1620 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1621 void grid(void)
sinrab 0:ed1ba99f7b14 1622 {
sinrab 0:ed1ba99f7b14 1623 TFT.cls();
sinrab 0:ed1ba99f7b14 1624 for (int i=0; i<240; i=i+5) {
sinrab 0:ed1ba99f7b14 1625 TFT.line(0,i,320,i, White);
sinrab 0:ed1ba99f7b14 1626 }
sinrab 0:ed1ba99f7b14 1627 for (int i=2; i<240; i=i+5) {
sinrab 0:ed1ba99f7b14 1628 TFT.line(4,i,320,i, White);
sinrab 0:ed1ba99f7b14 1629 }
sinrab 0:ed1ba99f7b14 1630 for (int i=3; i<240; i=i+5) {
sinrab 0:ed1ba99f7b14 1631 TFT.line(4,i,320,i, White);
sinrab 0:ed1ba99f7b14 1632 }
sinrab 0:ed1ba99f7b14 1633
sinrab 0:ed1ba99f7b14 1634 }
sinrab 1:7bc0f280c259 1635 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1636 void timeConvert(void) //показывает час с минуты с секундами начинают идти с часа и одной минуты
sinrab 0:ed1ba99f7b14 1637 {
sinrab 0:ed1ba99f7b14 1638 if (powerMosfet==1) treal = time(NULL);
sinrab 0:ed1ba99f7b14 1639 t = treal - tstart;
sinrab 0:ed1ba99f7b14 1640 h= t/3600;
sinrab 0:ed1ba99f7b14 1641 m= (t-h*3600)/60;
sinrab 0:ed1ba99f7b14 1642 s= (t-h*3600)-m*60;
sinrab 0:ed1ba99f7b14 1643 if (t == 359999) tstart=treal;
sinrab 1:7bc0f280c259 1644 }
sinrab 1:7bc0f280c259 1645 //------------------------------------------------------------------------------------------------------------
sinrab 1:7bc0f280c259 1646 void SetDateTime (void)
sinrab 1:7bc0f280c259 1647 {
sinrab 1:7bc0f280c259 1648 struct tm Clock;
sinrab 1:7bc0f280c259 1649 Clock.tm_year = year - 1900;
sinrab 1:7bc0f280c259 1650 Clock.tm_mon = mon;
sinrab 1:7bc0f280c259 1651 Clock.tm_mday = day;
sinrab 1:7bc0f280c259 1652 Clock.tm_hour = hour;
sinrab 1:7bc0f280c259 1653 Clock.tm_min = min;
sinrab 1:7bc0f280c259 1654 Clock.tm_sec = sec;
sinrab 1:7bc0f280c259 1655 time_t epoch = mktime(&Clock);
sinrab 1:7bc0f280c259 1656 set_time(epoch);
sinrab 1:7bc0f280c259 1657 }
sinrab 1:7bc0f280c259 1658 //------------------------------------------------------------------------------------------------------------
sinrab 1:7bc0f280c259 1659
sinrab 1:7bc0f280c259 1660
sinrab 1:7bc0f280c259 1661
sinrab 1:7bc0f280c259 1662
sinrab 1:7bc0f280c259 1663
sinrab 1:7bc0f280c259 1664
sinrab 1:7bc0f280c259 1665
sinrab 1:7bc0f280c259 1666
sinrab 1:7bc0f280c259 1667
sinrab 1:7bc0f280c259 1668
sinrab 1:7bc0f280c259 1669
sinrab 1:7bc0f280c259 1670
sinrab 1:7bc0f280c259 1671
sinrab 1:7bc0f280c259 1672
sinrab 1:7bc0f280c259 1673
sinrab 1:7bc0f280c259 1674
sinrab 1:7bc0f280c259 1675
sinrab 1:7bc0f280c259 1676
sinrab 1:7bc0f280c259 1677
sinrab 1:7bc0f280c259 1678
sinrab 1:7bc0f280c259 1679
sinrab 1:7bc0f280c259 1680
sinrab 1:7bc0f280c259 1681
sinrab 1:7bc0f280c259 1682
sinrab 1:7bc0f280c259 1683
sinrab 1:7bc0f280c259 1684
sinrab 1:7bc0f280c259 1685
sinrab 1:7bc0f280c259 1686
sinrab 1:7bc0f280c259 1687
sinrab 1:7bc0f280c259 1688
sinrab 1:7bc0f280c259 1689
sinrab 1:7bc0f280c259 1690
sinrab 1:7bc0f280c259 1691
sinrab 1:7bc0f280c259 1692
sinrab 1:7bc0f280c259 1693
sinrab 1:7bc0f280c259 1694