Freeman Oldman / Mbed 2 deprecated PSTFT_DC_Power_Supply

Dependencies:   mbed TFT_fonts SPI_TFT_ILI9341 beep _24LCXXX

Committer:
sinrab
Date:
Tue Feb 13 17:32:28 2018 +0000
Revision:
9:84a59e981307
Parent:
7:8410439dee73
v1.0.1 (???? ????) ??? ??????????? ?????, DS18B20

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 4:776f59129c24 3 #include "_24LCXXX.h"
sinrab 4:776f59129c24 4 #include "beep.h"
sinrab 9:84a59e981307 5 #include "DS1820.h"
sinrab 3:791cf9a867d1 6 //----------------------------------
sinrab 0:ed1ba99f7b14 7 #include "digi36x44.h"
sinrab 3:791cf9a867d1 8 #include "Consolas26x49.h"
sinrab 3:791cf9a867d1 9 #include "Consolas19x35.h"
sinrab 0:ed1ba99f7b14 10 #include "Courier8x13.h"
sinrab 0:ed1ba99f7b14 11 #include "CourierNew13x23.h"
sinrab 0:ed1ba99f7b14 12 #include "Lucida13x21.h"
sinrab 0:ed1ba99f7b14 13 //----------------------------------
sinrab 0:ed1ba99f7b14 14 #define text5 0xFFFF
sinrab 0:ed1ba99f7b14 15 #define back5 0x018C
sinrab 0:ed1ba99f7b14 16
sinrab 0:ed1ba99f7b14 17 #define text5_i 0x0000
sinrab 0:ed1ba99f7b14 18 #define back5_i 0x0660
sinrab 0:ed1ba99f7b14 19 #define back5_iset 0xF986
sinrab 0:ed1ba99f7b14 20 //----------------------------------
sinrab 0:ed1ba99f7b14 21 #define text4 0xFFFF
sinrab 0:ed1ba99f7b14 22 #define back4 0x3320
sinrab 0:ed1ba99f7b14 23
sinrab 0:ed1ba99f7b14 24 #define text4_i 0x0000
sinrab 0:ed1ba99f7b14 25 #define back4_i 0xFCD9
sinrab 0:ed1ba99f7b14 26 //----------------------------------
sinrab 0:ed1ba99f7b14 27 #define text2 0x0000
sinrab 0:ed1ba99f7b14 28 #define back2 0x9E7F
sinrab 0:ed1ba99f7b14 29 //----------------------------------
sinrab 3:791cf9a867d1 30 #define colorline 0xECA7 // цвет рамок 0xECA7 - песочный 0x018C - темносиний 0xFFE0 - желтый
sinrab 3:791cf9a867d1 31 #define color_text_on Green // ON текст
sinrab 3:791cf9a867d1 32 #define color_back_on 0x0339 // ON фон
sinrab 3:791cf9a867d1 33 #define color_scale1 0x3320 // шкала U
sinrab 3:791cf9a867d1 34 #define color_scale2 0x9A60 // шкала I
sinrab 3:791cf9a867d1 35 //----------------------------------
sinrab 5:0b3c71d7e475 36 SPI_TFT_ILI9341 TFT(PB_15, PB_14, PB_13, PB_12, PC_7, PC_6,"TFT"); // mosi, miso, sclk, cs, reset, dc
sinrab 0:ed1ba99f7b14 37 void grid(void);
sinrab 2:d20b1ef35d3f 38 Timer fps;// FPS
sinrab 4:776f59129c24 39 Timeout timerforfanstart; //таймер для запуска мотора
sinrab 4:776f59129c24 40 Timeout timerforpoweriddle; //таймер для паузы срабатывания кнопки
sinrab 4:776f59129c24 41 Timeout iddletimesaver; // таймер времени до включения заставки
sinrab 4:776f59129c24 42 int fst=0;
sinrab 4:776f59129c24 43 int fst2=0;
sinrab 7:8410439dee73 44 //------для смены мощности и переданной ёмкости
sinrab 7:8410439dee73 45 void Pcap(void);
sinrab 7:8410439dee73 46 Ticker Power_Capacity;
sinrab 7:8410439dee73 47 bool Pcapbool = true;
sinrab 7:8410439dee73 48 int Pcapbool2 = 1;
sinrab 7:8410439dee73 49 double mah = 0;
sinrab 7:8410439dee73 50 double wh = 0;
sinrab 7:8410439dee73 51 //-----------
sinrab 0:ed1ba99f7b14 52 //Ticker valueUI;
sinrab 5:0b3c71d7e475 53 InterruptIn button(PB_9); // кнопка питания вкл\выкл
sinrab 5:0b3c71d7e475 54 Beep buzzer(PB_3); // звук
sinrab 5:0b3c71d7e475 55 //I2C i2c(PC_9, PA_8); // sda, scl для флэш памяти для f401
sinrab 5:0b3c71d7e475 56 I2C i2c(PB_11, PB_10); // sda, scl для флэш памяти для f103
sinrab 4:776f59129c24 57 _24LCXXX eeprom(&i2c, 0x50);
sinrab 0:ed1ba99f7b14 58 //----------------------------------------------------------------------------------------------------------- Ввести в меню опцию коррекции падения напряжения на токоизмерительном шунте.
sinrab 0:ed1ba99f7b14 59 int t; // секунд с момента включения
sinrab 0:ed1ba99f7b14 60 int tstart; // при включении нагрузки равна реальному времени
sinrab 1:7bc0f280c259 61 time_t treal; // секунды реального времени для таймера нагрузки
sinrab 0:ed1ba99f7b14 62 int h=0; //вывод часов
sinrab 0:ed1ba99f7b14 63 int m=0; // минут
sinrab 0:ed1ba99f7b14 64 int s=0; // секунд
sinrab 0:ed1ba99f7b14 65 void timeConvert(void);
sinrab 0:ed1ba99f7b14 66 //----------- my functions ---------//
sinrab 0:ed1ba99f7b14 67 void drawScreen1(void); // экран 1 Главный экран
sinrab 0:ed1ba99f7b14 68 void drawScreen2(void); // экран 2 dats analog in and Noise
sinrab 0:ed1ba99f7b14 69 void drawScreen3(void); // экран 3
sinrab 0:ed1ba99f7b14 70 void drawScreen4(void); // экран 4 Калибровка
sinrab 0:ed1ba99f7b14 71 void drawScreen5(void); // экран 5 Настройки главный
sinrab 0:ed1ba99f7b14 72 void drawScreen6(void); // экран 6
sinrab 0:ed1ba99f7b14 73 void drawScreen7(void); // экран 7
sinrab 0:ed1ba99f7b14 74 void drawScreen8(void); // экран 8
sinrab 0:ed1ba99f7b14 75 void bootCold(void); // холодный старт
sinrab 4:776f59129c24 76 void loaddefaultsettings(void); // загрузка настроек по умолчанию
sinrab 4:776f59129c24 77 void loadsettings(void); // загрузка настроек при старте
sinrab 4:776f59129c24 78 void savedefaulttoflash(void); // сохранить в флэш настройки по умолчанию (для активации работы флэш)
sinrab 4:776f59129c24 79 void fans(void); // управление вентиляторами
sinrab 4:776f59129c24 80 void fanstart(void); // первичный старт вентилятора
sinrab 4:776f59129c24 81 void keypoweriddle(void); // для задержка опроса кнопки питания
sinrab 4:776f59129c24 82 void ScreenSaver(void); // ScreenSaver
sinrab 4:776f59129c24 83 void screensaverstart(void); // старт заставки
sinrab 4:776f59129c24 84 void bootscreen(void); // экран при старте
sinrab 4:776f59129c24 85 int saveractive=0;
sinrab 4:776f59129c24 86 int onesaver=0;
sinrab 4:776f59129c24 87 int onepower=0; // для задержка опроса кнопки питания
sinrab 9:84a59e981307 88 void flip_temperature(void);
sinrab 4:776f59129c24 89 //-----------------
sinrab 4:776f59129c24 90 void Protect(void); // функция обработки защиты
sinrab 4:776f59129c24 91 int shl=0;
sinrab 4:776f59129c24 92 int shm=0;
sinrab 4:776f59129c24 93 int shortline=0;
sinrab 4:776f59129c24 94 //-----------------
sinrab 2:d20b1ef35d3f 95 float map(float, float, float, float, float); // масштабирование
sinrab 1:7bc0f280c259 96 void SetDateTime(void); // установка даты и времени
sinrab 1:7bc0f280c259 97 int year=2014;
sinrab 1:7bc0f280c259 98 int mon=11;
sinrab 1:7bc0f280c259 99 int day=1;
sinrab 1:7bc0f280c259 100 int hour=16;
sinrab 1:7bc0f280c259 101 int min=42;
sinrab 1:7bc0f280c259 102 int sec=0;
sinrab 1:7bc0f280c259 103 time_t seconds; //для часов реального времени
sinrab 4:776f59129c24 104 int tempstart=42; // температура старта вентилятора
sinrab 4:776f59129c24 105 int tempfull=60; // полной мощности вентилятора tempstart tempfull tempcutoff
sinrab 4:776f59129c24 106 int tempcutoff=80; // отключения нагрузки
sinrab 4:776f59129c24 107 int umax=31; // U max, Volt
sinrab 4:776f59129c24 108 float imax=2.6; // I max, Amper
sinrab 4:776f59129c24 109 float rdown=0.05; // R сопротивление шунта для расчета падения напряжения выхода от зависимости от тока нагрузки
sinrab 4:776f59129c24 110 int rdown_on=1; // по умолчанию без падения напряжения на резисторе шунта
sinrab 3:791cf9a867d1 111 char *ron = "On "; // для вывода в меню главных настроек On
sinrab 3:791cf9a867d1 112 char *roff = "Off"; // для вывода в меню главных настроек Off
sinrab 0:ed1ba99f7b14 113 //---------------------------
sinrab 0:ed1ba99f7b14 114 float avgAin0(); // среднее значение с входа A0
sinrab 0:ed1ba99f7b14 115 float avgAin1(); // среднее значение с входа A1
sinrab 0:ed1ba99f7b14 116 float avgAin2(); // среднее значение с входа A2
sinrab 9:84a59e981307 117
sinrab 0:ed1ba99f7b14 118 //----
sinrab 0:ed1ba99f7b14 119 float in0 = 0;
sinrab 0:ed1ba99f7b14 120 float in1 = 0;
sinrab 0:ed1ba99f7b14 121 float in2 = 0;
sinrab 9:84a59e981307 122 //float in3 = 0;
sinrab 0:ed1ba99f7b14 123 //----
sinrab 3:791cf9a867d1 124 float U5 = 0;
sinrab 0:ed1ba99f7b14 125 float Ireal = 0;
sinrab 3:791cf9a867d1 126 float U30 = 0;
sinrab 0:ed1ba99f7b14 127 //---------------------------
sinrab 0:ed1ba99f7b14 128 void dataProcessing(void); // обработка и подготовка данных с аналоговых входов
sinrab 0:ed1ba99f7b14 129 void powerButton(void); // при нажатии кнопки питания
sinrab 0:ed1ba99f7b14 130 void buttonUse(void); // обработка нажатий кнопок
sinrab 0:ed1ba99f7b14 131 //-----------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 132 float a0a = 0.000679; // A0 - U 5 - avg при 0 - нижняя точка U 5 вольт
sinrab 4:776f59129c24 133 float a0k = 5.006402; // A0 - U 5 - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 134 //---------------------------------------------------------------
sinrab 4:776f59129c24 135 float a1a = 0.143353; // A1 - I бп - avg при 0 - нижняя точка a1a = avgAin1() - 0.00004
sinrab 4:776f59129c24 136 float a1k = 3.224676; // A1 - I бп - коэффициент - верхняя точка a1k = 2000/(avgAin1() - a1a) при 2амперах
sinrab 0:ed1ba99f7b14 137 //---------------------------------------------------------------
sinrab 4:776f59129c24 138 float a2a = 0.000015; // A2 - U 30 - avg при 0 - нижняя точка U 33 вольта
sinrab 4:776f59129c24 139 float a2k = 33.627953; // A2 - U 30 - коэффициент - верхняя точка
sinrab 0:ed1ba99f7b14 140 //---------------------------------------------------------------
sinrab 0:ed1ba99f7b14 141 float noisea0; //типа уровень шума (разница между минимум и максимум за 100 измерений) для А0
sinrab 0:ed1ba99f7b14 142 float noisea1; // - - для A1
sinrab 0:ed1ba99f7b14 143 float noisea2; // - - для A2
sinrab 9:84a59e981307 144 //float noisea3; // - - для A3
sinrab 0:ed1ba99f7b14 145 //-----------------------------------------------------------------------------------------------------------
sinrab 5:0b3c71d7e475 146 DigitalIn buttonUp(PB_8); // Up
sinrab 5:0b3c71d7e475 147 DigitalIn buttonDown(PB_6); // Down
sinrab 5:0b3c71d7e475 148 DigitalIn buttonEnter(PB_7); // Enter
sinrab 0:ed1ba99f7b14 149 int Screen=1; // по умолчанию грузим первое меню
sinrab 0:ed1ba99f7b14 150 int complit=0; // в начале меню не прорисовано
sinrab 0:ed1ba99f7b14 151 int pb=0; // для прорисовки кнопки
sinrab 0:ed1ba99f7b14 152 int kline=15; // номер начальной строки в меню калибровки экран 4
sinrab 1:7bc0f280c259 153 int mline=15; // номер начальной строки в меню Настройки главная экран 5
sinrab 0:ed1ba99f7b14 154 int mline2=0; //в главном меню строка 2 не выбрана
sinrab 3:791cf9a867d1 155 int mline4=0; // 4
sinrab 3:791cf9a867d1 156 int mline5=0; // 5
sinrab 3:791cf9a867d1 157 int mline6=0; // 6
sinrab 3:791cf9a867d1 158 int mline7=0; // 7
sinrab 3:791cf9a867d1 159 int mline8=0; // 8
sinrab 3:791cf9a867d1 160 int mline11=0; // 11
sinrab 4:776f59129c24 161 int mline12=0; // 12
sinrab 4:776f59129c24 162 int mline13=0; // 13
sinrab 4:776f59129c24 163 int mline14=0; // 14
sinrab 1:7bc0f280c259 164 int nline=8; // номер начальной строки в меню установки времени экран 3
sinrab 0:ed1ba99f7b14 165 int pmenu=0; //в главном меню изменение выбраной строки не действительно
sinrab 0:ed1ba99f7b14 166 int powerProtect=1; //защита от кз
sinrab 0:ed1ba99f7b14 167 int pp=0; //защита от кз для прорисовки меню
sinrab 3:791cf9a867d1 168 //int cc=0; // значит идет C.V
sinrab 2:d20b1ef35d3f 169 int pm=0; // для одной прорисовки сс и сv
sinrab 3:791cf9a867d1 170 int cs=0; // короткое замыкание
sinrab 3:791cf9a867d1 171 int csp=0; // для одной прорисовки короткого замыкания
sinrab 3:791cf9a867d1 172 float brightness = 1.0f; //яркость экрана
sinrab 5:0b3c71d7e475 173 PwmOut pinbrightness(PB_5); // выход на ключ регулировки яркости экрана
sinrab 3:791cf9a867d1 174 float fanspeed = 0.0f;
sinrab 5:0b3c71d7e475 175 PwmOut fan(PB_4); // выход вентилятора
sinrab 5:0b3c71d7e475 176 //PwmOut fan2(PA_15);
sinrab 5:0b3c71d7e475 177 //float fanspeed2 = 0.8f;
sinrab 3:791cf9a867d1 178 int temperature = 25; // текущая температура
sinrab 5:0b3c71d7e475 179 int screensaver=0; // заставка 0 - нет, 1 - часы, 2- ...
sinrab 5:0b3c71d7e475 180 int beeper=0; //бипер выключен
sinrab 0:ed1ba99f7b14 181 //-----------------------------------------------------------------------------------------------------------
sinrab 5:0b3c71d7e475 182 DigitalOut powerMosfet(PC_11); // выход управления нагрузкой
sinrab 5:0b3c71d7e475 183 DigitalIn cc(PC_10); //вход СС 0 - СС, 1 - CV
sinrab 3:791cf9a867d1 184 int ccc=0;
sinrab 5:0b3c71d7e475 185 DigitalOut ledcc(PD_2); // светодиод C.C
sinrab 5:0b3c71d7e475 186 DigitalOut ledshort(PC_12); // светодиод КЗ
sinrab 5:0b3c71d7e475 187 AnalogIn ainA0(PA_2);
sinrab 5:0b3c71d7e475 188 AnalogIn ainA1(PA_3);
sinrab 5:0b3c71d7e475 189 AnalogIn ainA2(PA_1);
sinrab 9:84a59e981307 190 //AnalogIn ainA3(PA_0); // вход термодатчика
sinrab 9:84a59e981307 191 DS1820 ds1820(PA_0);
sinrab 9:84a59e981307 192 Ticker ticker_temperature;
sinrab 3:791cf9a867d1 193 //AnalogIn ainA4(A4);
sinrab 3:791cf9a867d1 194 //AnalogIn ainA5(A5);
sinrab 4:776f59129c24 195 //BusOut unused(A4,A5);
sinrab 4:776f59129c24 196 //-------------для screen7--
sinrab 4:776f59129c24 197 int iiii=0;
sinrab 4:776f59129c24 198 //--------------------------
sinrab 0:ed1ba99f7b14 199 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 200 //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 201 void loaddefaultsettings(void)
sinrab 4:776f59129c24 202 {
sinrab 4:776f59129c24 203 a0a = 0.000679;
sinrab 4:776f59129c24 204 a0k = 5.006402;
sinrab 4:776f59129c24 205 a1a = 0.143353;
sinrab 4:776f59129c24 206 a1k = 3.224676;
sinrab 4:776f59129c24 207 a2a = 0.000015;
sinrab 4:776f59129c24 208 a2k = 33.627953;
sinrab 4:776f59129c24 209 imax=2.6;
sinrab 4:776f59129c24 210 rdown=0.05;
sinrab 4:776f59129c24 211 brightness = 1.0f;
sinrab 4:776f59129c24 212 beeper = 0;
sinrab 4:776f59129c24 213 rdown_on=1;
sinrab 4:776f59129c24 214 umax=31;
sinrab 4:776f59129c24 215 tempstart=42;
sinrab 4:776f59129c24 216 tempfull=60;
sinrab 4:776f59129c24 217 tempcutoff=80;
sinrab 4:776f59129c24 218 screensaver=0;
sinrab 4:776f59129c24 219 ledcc=1;
sinrab 4:776f59129c24 220 wait(0.5);
sinrab 4:776f59129c24 221 ledcc=0;
sinrab 4:776f59129c24 222 wait(0.5);
sinrab 4:776f59129c24 223 }
sinrab 4:776f59129c24 224 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 225 void loadsettings(void)
sinrab 4:776f59129c24 226 {
sinrab 4:776f59129c24 227 int s;
sinrab 4:776f59129c24 228 int s1;
sinrab 4:776f59129c24 229 eeprom.nbyte_read(0, (char*)&s, sizeof(s));
sinrab 4:776f59129c24 230 eeprom.nbyte_read(4, (char*)&s1, sizeof(s1));
sinrab 4:776f59129c24 231 if (s==0 && s1==1) { //если флэш активирована то грузим с неё
sinrab 4:776f59129c24 232 ledshort=1; // 1 раз моргнуло - начало загрузки
sinrab 4:776f59129c24 233 wait(0.02);
sinrab 4:776f59129c24 234 ledshort=0;
sinrab 4:776f59129c24 235
sinrab 4:776f59129c24 236 eeprom.nbyte_read(8, (char*)&a0a, sizeof(a0a)); // a0a float - 4 байта
sinrab 4:776f59129c24 237 eeprom.nbyte_read(12, (char*)&a0k, sizeof(a0k)); // a0k float - 4 байта
sinrab 4:776f59129c24 238 eeprom.nbyte_read(16, (char*)&a1a, sizeof(a1a)); // a1a float - 4 байта
sinrab 4:776f59129c24 239 eeprom.nbyte_read(20, (char*)&a1k, sizeof(a1k)); // a1k float - 4 байта
sinrab 4:776f59129c24 240 eeprom.nbyte_read(24, (char*)&a2a, sizeof(a2a)); // a2a float - 4 байта
sinrab 4:776f59129c24 241 eeprom.nbyte_read(28, (char*)&a2k, sizeof(a2k)); // a2k float - 4 байта
sinrab 4:776f59129c24 242
sinrab 4:776f59129c24 243 eeprom.nbyte_read(32, (char*)&imax, sizeof(imax)); // imax float - 4 байта
sinrab 4:776f59129c24 244 eeprom.nbyte_read(36, (char*)&rdown, sizeof(rdown)); // rdown float - 4 байта
sinrab 4:776f59129c24 245 eeprom.nbyte_read(40, (char*)&brightness, sizeof(brightness)); // brightness float - 4 байта
sinrab 4:776f59129c24 246 eeprom.nbyte_read(44, (char*)&beeper, sizeof(beeper)); // beeper float - 4 байта
sinrab 4:776f59129c24 247
sinrab 4:776f59129c24 248 eeprom.nbyte_read(48, (char*)&rdown_on, sizeof(rdown_on)); // rdown_on float - 4 байт
sinrab 4:776f59129c24 249 eeprom.nbyte_read(52, (char*)&umax, sizeof(umax)); // umax float - 4 байт
sinrab 4:776f59129c24 250 eeprom.nbyte_read(56, (char*)&tempstart, sizeof(tempstart)); // tempstart float - 4 байт
sinrab 4:776f59129c24 251 eeprom.nbyte_read(60, (char*)&tempfull, sizeof(tempfull)); // tempfull float - 4 байт
sinrab 4:776f59129c24 252 eeprom.nbyte_read(64, (char*)&tempcutoff, sizeof(tempcutoff)); // tempcutoff float - 4 байт
sinrab 4:776f59129c24 253 eeprom.nbyte_read(68, (char*)&screensaver, sizeof(screensaver)); // screensaver float - 4 байт
sinrab 4:776f59129c24 254
sinrab 4:776f59129c24 255 wait(0.05); // 2 раза моргнуло удачно загрузили
sinrab 4:776f59129c24 256 ledshort=1;
sinrab 4:776f59129c24 257 wait(0.02);
sinrab 4:776f59129c24 258 ledshort=0;
sinrab 5:0b3c71d7e475 259 }else{
sinrab 5:0b3c71d7e475 260 TFT.foreground(Red);
sinrab 5:0b3c71d7e475 261 TFT.printf("ERROR - flash memory is not activated\n");
sinrab 5:0b3c71d7e475 262 TFT.foreground(White);
sinrab 5:0b3c71d7e475 263 wait(5);
sinrab 5:0b3c71d7e475 264 TFT.printf("Load default settings.");
sinrab 5:0b3c71d7e475 265 for (int i=0; i<10; i++)
sinrab 5:0b3c71d7e475 266 {
sinrab 5:0b3c71d7e475 267 wait(0.1);
sinrab 5:0b3c71d7e475 268 TFT.printf(".");
sinrab 5:0b3c71d7e475 269 }
sinrab 5:0b3c71d7e475 270 TFT.printf("\n");
sinrab 5:0b3c71d7e475 271 loaddefaultsettings();
sinrab 4:776f59129c24 272 }
sinrab 4:776f59129c24 273 }
sinrab 4:776f59129c24 274 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 275 void savedefaulttoflash(void)
sinrab 4:776f59129c24 276 {
sinrab 4:776f59129c24 277
sinrab 4:776f59129c24 278 a0a = 0.000679;
sinrab 4:776f59129c24 279 a0k = 5.006402;
sinrab 4:776f59129c24 280 a1a = 0.143353;
sinrab 4:776f59129c24 281 a1k = 3.224676;
sinrab 4:776f59129c24 282 a2a = 0.000015;
sinrab 4:776f59129c24 283 a2k = 33.627953;
sinrab 4:776f59129c24 284 imax=2.6;
sinrab 4:776f59129c24 285 rdown=0.05;
sinrab 4:776f59129c24 286 brightness = 1.0f;
sinrab 4:776f59129c24 287 beeper = 0;
sinrab 4:776f59129c24 288 rdown_on=1;
sinrab 4:776f59129c24 289 umax=31;
sinrab 4:776f59129c24 290 tempstart=42;
sinrab 4:776f59129c24 291 tempfull=60;
sinrab 4:776f59129c24 292 tempcutoff=80;
sinrab 4:776f59129c24 293 screensaver=0;
sinrab 4:776f59129c24 294
sinrab 4:776f59129c24 295
sinrab 4:776f59129c24 296 ledshort=1; // 1 раз моргнуло - начало записи
sinrab 4:776f59129c24 297 wait(0.02);
sinrab 4:776f59129c24 298 ledshort=0;
sinrab 4:776f59129c24 299 wait(0.05);
sinrab 4:776f59129c24 300
sinrab 4:776f59129c24 301 int s=0;
sinrab 4:776f59129c24 302 int s1=1;
sinrab 4:776f59129c24 303 eeprom.nbyte_write(0, (char*)&s, sizeof(s));
sinrab 4:776f59129c24 304 eeprom.nbyte_write(4, (char*)&s1, sizeof(s1));
sinrab 4:776f59129c24 305
sinrab 4:776f59129c24 306 eeprom.nbyte_write(8, (char*)&a0a, sizeof(a0a)); // a0a float - 4 байта
sinrab 4:776f59129c24 307 eeprom.nbyte_write(12, (char*)&a0k, sizeof(a0k)); // a0k float - 4 байта
sinrab 4:776f59129c24 308 eeprom.nbyte_write(16, (char*)&a1a, sizeof(a1a)); // a1a float - 4 байта
sinrab 4:776f59129c24 309 eeprom.nbyte_write(20, (char*)&a1k, sizeof(a1k)); // a1k float - 4 байта
sinrab 4:776f59129c24 310 eeprom.nbyte_write(24, (char*)&a2a, sizeof(a2a)); // a2a float - 4 байта
sinrab 4:776f59129c24 311 eeprom.nbyte_write(28, (char*)&a2k, sizeof(a2k)); // a2k float - 4 байта
sinrab 4:776f59129c24 312
sinrab 4:776f59129c24 313 eeprom.nbyte_write(32, (char*)&imax, sizeof(imax)); // imax float - 4 байта
sinrab 4:776f59129c24 314 eeprom.nbyte_write(36, (char*)&rdown, sizeof(rdown)); // rdown float - 4 байта
sinrab 4:776f59129c24 315 eeprom.nbyte_write(40, (char*)&brightness, sizeof(brightness)); // brightness float - 4 байта
sinrab 4:776f59129c24 316 eeprom.nbyte_write(44, (char*)&beeper, sizeof(beeper)); // beeper float - 4 байта
sinrab 4:776f59129c24 317
sinrab 4:776f59129c24 318 eeprom.nbyte_write(48, (char*)&rdown_on, sizeof(rdown_on)); // rdown_on float - 4 байта
sinrab 4:776f59129c24 319 eeprom.nbyte_write(52, (char*)&umax, sizeof(umax)); // umax float - 4 байта
sinrab 4:776f59129c24 320 eeprom.nbyte_write(56, (char*)&tempstart, sizeof(tempstart)); // tempstart float - 4 байта
sinrab 4:776f59129c24 321 eeprom.nbyte_write(60, (char*)&tempfull, sizeof(tempfull)); // tempfull float - 4 байта
sinrab 4:776f59129c24 322 eeprom.nbyte_write(64, (char*)&tempcutoff, sizeof(tempcutoff)); // tempcutoff float - 4 байта
sinrab 4:776f59129c24 323 eeprom.nbyte_write(68, (char*)&screensaver, sizeof(screensaver)); // screensaver float - 4 байта
sinrab 4:776f59129c24 324
sinrab 4:776f59129c24 325 int l;
sinrab 4:776f59129c24 326 int l1;
sinrab 4:776f59129c24 327 eeprom.nbyte_read(0, (char*)&l, sizeof(l));
sinrab 4:776f59129c24 328 eeprom.nbyte_read(4, (char*)&l1, sizeof(l1));
sinrab 4:776f59129c24 329
sinrab 4:776f59129c24 330 if (l==s && l1==s1) { //удачно сохранилось - 2 раза моргнуло
sinrab 4:776f59129c24 331 ledshort=1;
sinrab 4:776f59129c24 332 wait(0.02);
sinrab 4:776f59129c24 333 ledshort=0;
sinrab 4:776f59129c24 334 } else {
sinrab 4:776f59129c24 335 ledshort=1;
sinrab 4:776f59129c24 336 TFT.background(Black);
sinrab 4:776f59129c24 337 TFT.foreground(Red);
sinrab 4:776f59129c24 338 TFT.set_font((unsigned char*) Consolas19x35);
sinrab 4:776f59129c24 339 TFT.locate(10, 100);
sinrab 4:776f59129c24 340 TFT.printf("SAVE ERROR");
sinrab 4:776f59129c24 341 wait(5);
sinrab 4:776f59129c24 342 ledshort=0;
sinrab 4:776f59129c24 343 }
sinrab 4:776f59129c24 344 }
sinrab 0:ed1ba99f7b14 345 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 346 void bootCold(void)
sinrab 0:ed1ba99f7b14 347 {
sinrab 4:776f59129c24 348 i2c.frequency(100000);
sinrab 0:ed1ba99f7b14 349 powerMosfet = 0; // при включении выход выключен
sinrab 3:791cf9a867d1 350 ledcc=0;
sinrab 3:791cf9a867d1 351 ledshort=0;
sinrab 4:776f59129c24 352 TFT.claim(stdout);
sinrab 5:0b3c71d7e475 353 //set_time(1414838392); // Set RTC time to Wed, 28 Oct 2009 11:35:37
sinrab 0:ed1ba99f7b14 354 tstart = treal = time(NULL);
sinrab 5:0b3c71d7e475 355 pinbrightness.period(0.01); // задаём частоту Шим подсветки 0.001 - 1000 герц
sinrab 3:791cf9a867d1 356 fan.period(0.01);
sinrab 5:0b3c71d7e475 357 //fan2.period(0.01);
sinrab 0:ed1ba99f7b14 358 TFT.set_orientation(3);
sinrab 0:ed1ba99f7b14 359 TFT.background(Black);
sinrab 0:ed1ba99f7b14 360 TFT.cls();
sinrab 0:ed1ba99f7b14 361 wait(0.2);
sinrab 3:791cf9a867d1 362 fan = fanspeed; // устанавливаем скорость
sinrab 5:0b3c71d7e475 363 //fan2=fanspeed2;
sinrab 9:84a59e981307 364 if(ds1820.begin()) {
sinrab 9:84a59e981307 365 ds1820.startConversion();
sinrab 9:84a59e981307 366 ticker_temperature.attach(&flip_temperature, 1.0);
sinrab 9:84a59e981307 367 } else {
sinrab 9:84a59e981307 368 temperature = 0;
sinrab 9:84a59e981307 369 }
sinrab 0:ed1ba99f7b14 370 }
sinrab 0:ed1ba99f7b14 371 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 372 void bootscreen(void)
sinrab 4:776f59129c24 373 {
sinrab 4:776f59129c24 374 TFT.background(Black);
sinrab 5:0b3c71d7e475 375 TFT.foreground(Green);
sinrab 5:0b3c71d7e475 376 TFT.locate(100, 10);
sinrab 5:0b3c71d7e475 377 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 5:0b3c71d7e475 378 TFT.printf("PSTFT\n");
sinrab 4:776f59129c24 379 TFT.foreground(White);
sinrab 4:776f59129c24 380 TFT.set_font((unsigned char*) CourierNew13x23);
sinrab 5:0b3c71d7e475 381 TFT.printf(" Firmware v. 1.0.0\n");
sinrab 5:0b3c71d7e475 382 TFT.set_font((unsigned char*) Courier8x13);
sinrab 5:0b3c71d7e475 383 TFT.printf(" Laboratory power supply based on STM32\n");
sinrab 5:0b3c71d7e475 384 TFT.printf(" Copyright (c) 2015 Pimenov V\n");
sinrab 5:0b3c71d7e475 385 TFT.printf(" Mail: sinrab@gmail.com \n");
sinrab 4:776f59129c24 386 pinbrightness = brightness; // включаем подсветку
sinrab 5:0b3c71d7e475 387 wait(3);
sinrab 5:0b3c71d7e475 388 TFT.locate(0, 150);
sinrab 5:0b3c71d7e475 389 TFT.set_font((unsigned char*) Courier8x13);
sinrab 5:0b3c71d7e475 390 TFT.printf("Press button ENTER\n");
sinrab 5:0b3c71d7e475 391 TFT.printf("for load default settings\n");
sinrab 5:0b3c71d7e475 392 TFT.printf("\n");
sinrab 5:0b3c71d7e475 393 wait(1);
sinrab 4:776f59129c24 394 if (buttonEnter==0) {
sinrab 5:0b3c71d7e475 395 TFT.printf("Load default settings.");
sinrab 5:0b3c71d7e475 396 for (int i=0; i<10; i++)
sinrab 5:0b3c71d7e475 397 {
sinrab 5:0b3c71d7e475 398 wait(0.1);
sinrab 5:0b3c71d7e475 399 TFT.printf(".");
sinrab 5:0b3c71d7e475 400 }
sinrab 5:0b3c71d7e475 401 TFT.printf("\n");
sinrab 4:776f59129c24 402 loaddefaultsettings();
sinrab 4:776f59129c24 403 }else{
sinrab 5:0b3c71d7e475 404 TFT.printf("Load settings from flash memory.");
sinrab 5:0b3c71d7e475 405 for (int i=0; i<9; i++)
sinrab 5:0b3c71d7e475 406 {
sinrab 5:0b3c71d7e475 407 wait(0.1);
sinrab 5:0b3c71d7e475 408 TFT.printf(".");
sinrab 5:0b3c71d7e475 409 }
sinrab 5:0b3c71d7e475 410 TFT.printf("\n");
sinrab 4:776f59129c24 411 loadsettings();
sinrab 4:776f59129c24 412 }
sinrab 5:0b3c71d7e475 413 //wait(100);
sinrab 4:776f59129c24 414 }
sinrab 4:776f59129c24 415 //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 416 int main() //--------- Главная функция ---------//
sinrab 0:ed1ba99f7b14 417 {
sinrab 0:ed1ba99f7b14 418 bootCold(); // холодный старт
sinrab 4:776f59129c24 419 bootscreen();
sinrab 0:ed1ba99f7b14 420 button.fall(&powerButton); // прерывание кнопки включения нагрузки запускает функцию
sinrab 7:8410439dee73 421 Power_Capacity.attach(&Pcap, 1.0); // таймер для смены вывода на экран мощности и ёмкости
sinrab 0:ed1ba99f7b14 422
sinrab 0:ed1ba99f7b14 423 while(1) {
sinrab 0:ed1ba99f7b14 424
sinrab 0:ed1ba99f7b14 425 dataProcessing(); // обработка и подготовка данных с аналоговых входов
sinrab 4:776f59129c24 426 fans();
sinrab 4:776f59129c24 427 Protect();
sinrab 4:776f59129c24 428 if (saveractive==0) {
sinrab 4:776f59129c24 429 buttonUse(); // обработка нажатий кнопок
sinrab 4:776f59129c24 430 }
sinrab 4:776f59129c24 431 ScreenSaver(); // заставка
sinrab 0:ed1ba99f7b14 432 if (Screen == 1) drawScreen1();
sinrab 0:ed1ba99f7b14 433 if (Screen == 2) drawScreen2();
sinrab 0:ed1ba99f7b14 434 if (Screen == 3) drawScreen3();
sinrab 0:ed1ba99f7b14 435 if (Screen == 4) drawScreen4();
sinrab 0:ed1ba99f7b14 436 if (Screen == 5) drawScreen5();
sinrab 0:ed1ba99f7b14 437 if (Screen == 6) drawScreen6();
sinrab 0:ed1ba99f7b14 438 if (Screen == 7) drawScreen7();
sinrab 0:ed1ba99f7b14 439 if (Screen == 8) drawScreen8();
sinrab 0:ed1ba99f7b14 440
sinrab 0:ed1ba99f7b14 441 }
sinrab 0:ed1ba99f7b14 442 } //--------- Главная функция ---------//
sinrab 4:776f59129c24 443 //--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 444 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 445 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 446 void drawScreen1(void) // экран 1
sinrab 0:ed1ba99f7b14 447 {
sinrab 0:ed1ba99f7b14 448 if (complit==0) {
sinrab 3:791cf9a867d1 449 pm=0;
sinrab 3:791cf9a867d1 450 ccc=0;
sinrab 0:ed1ba99f7b14 451 pb=0;
sinrab 0:ed1ba99f7b14 452 pp=0;
sinrab 5:0b3c71d7e475 453 csp=0;
sinrab 0:ed1ba99f7b14 454 TFT.set_orientation(3);
sinrab 0:ed1ba99f7b14 455 TFT.background(Black);
sinrab 0:ed1ba99f7b14 456 TFT.cls();
sinrab 3:791cf9a867d1 457 TFT.rect(0,0,319,239,colorline); //рамка
sinrab 3:791cf9a867d1 458 TFT.rect(10,62,309,76,colorline); //аналоговая рамка 1
sinrab 3:791cf9a867d1 459 TFT.rect(10,137,309,151,colorline); //авалоговая рамка 2
sinrab 0:ed1ba99f7b14 460 //grid();
sinrab 0:ed1ba99f7b14 461 //int y = 51;
sinrab 0:ed1ba99f7b14 462 //TFT.line(5,y,310,y, White);
sinrab 0:ed1ba99f7b14 463 TFT.background(Black);
sinrab 3:791cf9a867d1 464 TFT.foreground(colorline); // цвет слов
sinrab 4:776f59129c24 465 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 2:d20b1ef35d3f 466 TFT.locate(193, 13);
sinrab 3:791cf9a867d1 467 TFT.printf("v"); // V
sinrab 4:776f59129c24 468 TFT.locate(165, 88);
sinrab 3:791cf9a867d1 469 TFT.printf("ma"); // mA
sinrab 0:ed1ba99f7b14 470 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 471
sinrab 3:791cf9a867d1 472 TFT.fillrect(7,161,104,183,0x2104); // подвал левый квадрат верхний заливка
sinrab 3:791cf9a867d1 473 TFT.fillrect(7,185,104,207,0x2104); // средний
sinrab 3:791cf9a867d1 474 TFT.fillrect(7,207,104,231,0x2104); // нижний
sinrab 0:ed1ba99f7b14 475
sinrab 3:791cf9a867d1 476 TFT.rect(6,160,105,232,colorline); // левый квадрат
sinrab 3:791cf9a867d1 477 TFT.line(7,184,104,184,colorline); // левый разделительная линия вверхняя
sinrab 3:791cf9a867d1 478 TFT.line(7,208,104,208,colorline); // нижняя
sinrab 3:791cf9a867d1 479 TFT.rect(112,160,207,192,colorline); //средний квадрат верх
sinrab 3:791cf9a867d1 480 TFT.rect(112,198,207,232,colorline); // низ
sinrab 3:791cf9a867d1 481 TFT.rect(214,160,313,232,colorline); //правый квадрат
sinrab 0:ed1ba99f7b14 482
sinrab 0:ed1ba99f7b14 483 }
sinrab 0:ed1ba99f7b14 484 //-----------------------------------------------------------------------------
sinrab 3:791cf9a867d1 485 if (powerProtect==0 & pp==0) { // защита от кз
sinrab 4:776f59129c24 486 TFT.fillrect(113,161,206,191,Black); //0
sinrab 3:791cf9a867d1 487 TFT.background(Black);
sinrab 3:791cf9a867d1 488 TFT.foreground(0x4208);
sinrab 0:ed1ba99f7b14 489 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 490 TFT.locate(115, 165);
sinrab 3:791cf9a867d1 491 TFT.printf("Protect");
sinrab 3:791cf9a867d1 492 pp=1;
sinrab 3:791cf9a867d1 493 }
sinrab 3:791cf9a867d1 494 if (powerProtect==1 & pp==0) { //1
sinrab 3:791cf9a867d1 495 TFT.fillrect(113,161,206,191,0x0180);
sinrab 3:791cf9a867d1 496 TFT.background(0x0180);
sinrab 3:791cf9a867d1 497 TFT.foreground(Green);
sinrab 3:791cf9a867d1 498 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 499 TFT.locate(115, 165);
sinrab 0:ed1ba99f7b14 500 TFT.printf("Protect");
sinrab 0:ed1ba99f7b14 501 pp=1;
sinrab 0:ed1ba99f7b14 502 }
sinrab 4:776f59129c24 503
sinrab 4:776f59129c24 504 if (cs==0 & csp==0) { // прорисовка короткого замыкания TFT.rect(112,198,207,232,colorline);
sinrab 3:791cf9a867d1 505 TFT.fillrect(113,199,206,231,Black); //0
sinrab 3:791cf9a867d1 506 TFT.background(Black);
sinrab 3:791cf9a867d1 507 TFT.foreground(0x4208);
sinrab 0:ed1ba99f7b14 508 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 509 TFT.locate(130, 205);
sinrab 3:791cf9a867d1 510 TFT.printf("SHORT");
sinrab 3:791cf9a867d1 511 csp=1;
sinrab 4:776f59129c24 512 }
sinrab 4:776f59129c24 513 if (cs==1 & csp==0) { //1
sinrab 3:791cf9a867d1 514 TFT.fillrect(113,199,206,231,0x6000);
sinrab 3:791cf9a867d1 515 TFT.background(0x6000);
sinrab 3:791cf9a867d1 516 TFT.foreground(Red);
sinrab 3:791cf9a867d1 517 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 518 TFT.locate(130, 205);
sinrab 3:791cf9a867d1 519 TFT.printf("SHORT");
sinrab 3:791cf9a867d1 520 csp=1;
sinrab 4:776f59129c24 521 }
sinrab 4:776f59129c24 522
sinrab 0:ed1ba99f7b14 523
sinrab 0:ed1ba99f7b14 524
sinrab 5:0b3c71d7e475 525 //fps.reset(); //мерить фпс
sinrab 5:0b3c71d7e475 526 //fps.start();
sinrab 4:776f59129c24 527
sinrab 0:ed1ba99f7b14 528 TFT.background(Black);
sinrab 4:776f59129c24 529
sinrab 4:776f59129c24 530 if (cc==0) { //если C.C то меняем цвет значения напряжения
sinrab 2:d20b1ef35d3f 531 TFT.foreground(Red);
sinrab 4:776f59129c24 532 } else {
sinrab 2:d20b1ef35d3f 533 TFT.foreground(Green);
sinrab 2:d20b1ef35d3f 534 }
sinrab 4:776f59129c24 535
sinrab 0:ed1ba99f7b14 536 TFT.set_font((unsigned char*) digi36x44);
sinrab 0:ed1ba99f7b14 537 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 538 if(U5<0) U5=0;
sinrab 4:776f59129c24 539 if (U5<4.5f) {
sinrab 3:791cf9a867d1 540 //TFT.fillrect(10,10,46,54,Black);
sinrab 3:791cf9a867d1 541 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 542 TFT.printf("%5.3f", U5); // выводим значение с A0 (напряжение)
sinrab 4:776f59129c24 543 } else {
sinrab 4:776f59129c24 544 TFT.locate(10, 10);
sinrab 4:776f59129c24 545 TFT.printf("%05.2f", U30); // выводим значение с A0 (напряжение)
sinrab 2:d20b1ef35d3f 546 }
sinrab 4:776f59129c24 547
sinrab 2:d20b1ef35d3f 548 TFT.pixel(82, 53, Black);
sinrab 2:d20b1ef35d3f 549 TFT.pixel(117, 53, Black);
sinrab 4:776f59129c24 550
sinrab 0:ed1ba99f7b14 551 TFT.locate(10, 85);
sinrab 2:d20b1ef35d3f 552 TFT.foreground(Green);
sinrab 3:791cf9a867d1 553 TFT.printf("%04.0f", Ireal); // выводим значение с A1 (ток)
sinrab 0:ed1ba99f7b14 554
sinrab 2:d20b1ef35d3f 555
sinrab 3:791cf9a867d1 556 TFT.background(0x2104); // выводим мощность W
sinrab 2:d20b1ef35d3f 557 TFT.foreground(0xE71C);//текст
sinrab 0:ed1ba99f7b14 558 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 7:8410439dee73 559 TFT.locate(7, 162); // TFT.locate(11, 162);
sinrab 7:8410439dee73 560 if (Pcapbool) {
sinrab 7:8410439dee73 561 //mah = mah + (U5 * Ireal / 3600);
sinrab 7:8410439dee73 562 TFT.printf(" ");
sinrab 7:8410439dee73 563 TFT.locate(7, 162);
sinrab 7:8410439dee73 564 Pcapbool = false;
sinrab 7:8410439dee73 565 if (Pcapbool2 == 1) {
sinrab 7:8410439dee73 566 float temp = U30*Ireal/1000;
sinrab 7:8410439dee73 567 if (temp < 0 ) temp = 0;
sinrab 7:8410439dee73 568 TFT.printf("%3.2f W", temp); // мощность текущая ватт
sinrab 7:8410439dee73 569 } else if (Pcapbool2 == 2){
sinrab 7:8410439dee73 570 TFT.printf("%4.0fmah", mah); // миллиампер час емкость 3.7 вольт
sinrab 7:8410439dee73 571 } else {
sinrab 7:8410439dee73 572 TFT.printf("%2.2f wh", wh); // ватт часы
sinrab 7:8410439dee73 573 }
sinrab 7:8410439dee73 574 }
sinrab 7:8410439dee73 575 //TFT.printf("%05.2f W", U30*Ireal/1000);
sinrab 5:0b3c71d7e475 576 //TFT.printf("%f", fanspeed*100);
sinrab 0:ed1ba99f7b14 577
sinrab 4:776f59129c24 578 TFT.background(0x2104); // выводим время включеной нагрузки
sinrab 2:d20b1ef35d3f 579 TFT.foreground(0xE71C);//текст
sinrab 0:ed1ba99f7b14 580 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 3:791cf9a867d1 581 TFT.locate(7, 187);
sinrab 0:ed1ba99f7b14 582 timeConvert();
sinrab 0:ed1ba99f7b14 583 TFT.printf("%02d:%02d:%02d", h, m, s);
sinrab 0:ed1ba99f7b14 584
sinrab 0:ed1ba99f7b14 585
sinrab 3:791cf9a867d1 586 if (powerMosfet==0 & pb==0) { // выводим OFF
sinrab 3:791cf9a867d1 587 TFT.background(Black);
sinrab 2:d20b1ef35d3f 588 TFT.foreground(0xA514);
sinrab 3:791cf9a867d1 589 TFT.fillrect(215,161,312,231,Black);
sinrab 0:ed1ba99f7b14 590 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 3:791cf9a867d1 591 TFT.locate(227, 174);
sinrab 0:ed1ba99f7b14 592 TFT.printf("OFF");
sinrab 0:ed1ba99f7b14 593 pb=1;
sinrab 0:ed1ba99f7b14 594 }
sinrab 3:791cf9a867d1 595 if (powerMosfet==1 & pb==0) { // выводим ON
sinrab 3:791cf9a867d1 596 TFT.background(color_back_on);
sinrab 3:791cf9a867d1 597 TFT.foreground(color_text_on);
sinrab 3:791cf9a867d1 598 TFT.fillrect(215,161,312,231,color_back_on);
sinrab 0:ed1ba99f7b14 599 TFT.set_font((unsigned char*) Consolas26x49);
sinrab 3:791cf9a867d1 600 TFT.locate(238, 174);
sinrab 0:ed1ba99f7b14 601 TFT.printf("ON");
sinrab 0:ed1ba99f7b14 602 pb=1;
sinrab 0:ed1ba99f7b14 603 }
sinrab 4:776f59129c24 604
sinrab 4:776f59129c24 605 int xscale1 = map(U30, 0, umax, 0, 298);
sinrab 2:d20b1ef35d3f 606 if (xscale1>297) xscale1=298;
sinrab 4:776f59129c24 607 TFT.fillrect(11, 63, (xscale1+10), 75, color_scale1); //0x04C9 // аналоговая шкала Напряжение
sinrab 2:d20b1ef35d3f 608 TFT.fillrect((xscale1+12), 63, 308, 75, Black);
sinrab 4:776f59129c24 609
sinrab 4:776f59129c24 610 int xscale2 = map(Ireal, 0, imax*1000, 0, 298);
sinrab 2:d20b1ef35d3f 611 if (xscale2>297) xscale2=298;
sinrab 3:791cf9a867d1 612 TFT.fillrect(11, 138, (xscale2+10), 150, color_scale2); //0x9A60 // аналоговая шкала Ток
sinrab 3:791cf9a867d1 613 TFT.fillrect((xscale2+11), 138, 308, 150, Black);
sinrab 4:776f59129c24 614
sinrab 3:791cf9a867d1 615 //int zxc = int(Iset);
sinrab 3:791cf9a867d1 616 //if (zxc>295) zxc=295;
sinrab 3:791cf9a867d1 617 //if (zxc<0) zxc=0;
sinrab 3:791cf9a867d1 618 //TFT.fillrect(11+zxc,138, 13+zxc, 150, Red); // шкала I set
sinrab 0:ed1ba99f7b14 619
sinrab 5:0b3c71d7e475 620 //fps.stop();
sinrab 5:0b3c71d7e475 621 //TFT.set_font((unsigned char*) Courier8x13); // FPS
sinrab 5:0b3c71d7e475 622 //TFT.locate(169,81);
sinrab 5:0b3c71d7e475 623 //printf("%0.2f", (1/fps.read()));
sinrab 4:776f59129c24 624
sinrab 3:791cf9a867d1 625 TFT.background(0x2104);
sinrab 3:791cf9a867d1 626 TFT.foreground(White);
sinrab 4:776f59129c24 627 TFT.set_font((unsigned char*) Lucida13x21); //выводим Температуру
sinrab 4:776f59129c24 628 TFT.locate(11, 211);
sinrab 3:791cf9a867d1 629 TFT.printf(" %d 'C ", temperature);
sinrab 4:776f59129c24 630
sinrab 3:791cf9a867d1 631 /*
sinrab 3:791cf9a867d1 632 if (dinCC==1 & cc_one==1){
sinrab 3:791cf9a867d1 633 cc=1;
sinrab 3:791cf9a867d1 634 pm=0;
sinrab 3:791cf9a867d1 635 cc_one=0;
sinrab 3:791cf9a867d1 636 }
sinrab 3:791cf9a867d1 637 if (dinCC==0 & cc_one==0){
sinrab 3:791cf9a867d1 638 cc=0;
sinrab 3:791cf9a867d1 639 pm=0;
sinrab 3:791cf9a867d1 640 cc_one=1;
sinrab 3:791cf9a867d1 641 }
sinrab 3:791cf9a867d1 642 */
sinrab 4:776f59129c24 643 if(cc==1 & ccc==1) { // защелка для отображения сс сv
sinrab 3:791cf9a867d1 644 pm=0;
sinrab 3:791cf9a867d1 645 ccc=0;
sinrab 4:776f59129c24 646 }
sinrab 4:776f59129c24 647 if(cc==0 & ccc==0) {
sinrab 3:791cf9a867d1 648 pm=0;
sinrab 3:791cf9a867d1 649 ccc=1;
sinrab 4:776f59129c24 650 }
sinrab 4:776f59129c24 651
sinrab 4:776f59129c24 652 if(cc==0 & pm==0) { // c.c
sinrab 2:d20b1ef35d3f 653 TFT.fillrect(240,10,304,53,Black);//c.v стереть
sinrab 2:d20b1ef35d3f 654 TFT.fillrect(240,85,304,128,0x6000);//c.c
sinrab 3:791cf9a867d1 655 TFT.rect(240,85,304,128,0xC800);
sinrab 2:d20b1ef35d3f 656 TFT.background(0x6000);
sinrab 2:d20b1ef35d3f 657 TFT.foreground(Red);
sinrab 2:d20b1ef35d3f 658 TFT.set_font((unsigned char*) Consolas19x35);
sinrab 2:d20b1ef35d3f 659 TFT.locate(246, 89);
sinrab 2:d20b1ef35d3f 660 TFT.printf("C.C");
sinrab 2:d20b1ef35d3f 661 pm=1;
sinrab 2:d20b1ef35d3f 662 }
sinrab 4:776f59129c24 663 if(cc==1 & pm==0) { // c.v
sinrab 2:d20b1ef35d3f 664 TFT.fillrect(240,85,304,128,Black);//c.c стереть
sinrab 4:776f59129c24 665 TFT.fillrect(240,10,304,53,0x0180);//c.v
sinrab 4:776f59129c24 666 TFT.rect(240,10,304,53,0x04C0);
sinrab 2:d20b1ef35d3f 667 TFT.background(0x0180);
sinrab 2:d20b1ef35d3f 668 TFT.foreground(Green);
sinrab 2:d20b1ef35d3f 669 TFT.set_font((unsigned char*) Consolas19x35);
sinrab 2:d20b1ef35d3f 670 TFT.locate(246, 14);
sinrab 2:d20b1ef35d3f 671 TFT.printf("C.V");
sinrab 2:d20b1ef35d3f 672 pm=1;
sinrab 2:d20b1ef35d3f 673 }
sinrab 0:ed1ba99f7b14 674
sinrab 0:ed1ba99f7b14 675
sinrab 0:ed1ba99f7b14 676 }
sinrab 0:ed1ba99f7b14 677 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 678 void drawScreen2(void) // экран 2 Data analo in, noise
sinrab 0:ed1ba99f7b14 679 {
sinrab 0:ed1ba99f7b14 680 if (complit==0) {
sinrab 0:ed1ba99f7b14 681 TFT.background(back2);
sinrab 0:ed1ba99f7b14 682 TFT.foreground(text2);
sinrab 0:ed1ba99f7b14 683 TFT.cls();
sinrab 0:ed1ba99f7b14 684 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 685 }
sinrab 0:ed1ba99f7b14 686
sinrab 0:ed1ba99f7b14 687 TFT.background(back2);
sinrab 0:ed1ba99f7b14 688 TFT.foreground(text2);
sinrab 0:ed1ba99f7b14 689 TFT.set_font((unsigned char*) Courier8x13);
sinrab 0:ed1ba99f7b14 690 TFT.locate(0, 0);
sinrab 0:ed1ba99f7b14 691 printf("--------- Data Analog In --------- \n");
sinrab 4:776f59129c24 692 printf("U.5 A0 noise= %0.1f, avg= %0.5f \n", noisea0, in0);
sinrab 4:776f59129c24 693 printf("U= %06.4f \n coeff. k=%f, a=%f \n", U5, a0k, a0a); // A0 U real
sinrab 0:ed1ba99f7b14 694 printf("---------------------------------- \n");
sinrab 4:776f59129c24 695 printf("I.real A1 noise= %0.1f, avg= %0.5f \n", noisea1, in1);
sinrab 4:776f59129c24 696 printf("I= %06.2f \n coeff. k=%f, a=%f \n", Ireal, a1k, a1a); // A1 I real
sinrab 4:776f59129c24 697 printf("---------------------------------- \n");
sinrab 4:776f59129c24 698 printf("U.30 A2 noise= %0.1f, avg= %0.5f \n", noisea2, in2);
sinrab 4:776f59129c24 699 printf("U= %06.3f \n coeff. k=%f, a=%f \n", U30, a2k, a2a); // A2 U set
sinrab 4:776f59129c24 700 printf("---------------------------------- \n");
sinrab 9:84a59e981307 701 //printf("Temp A3 noise= %0.1f, avg= %0.5f \n", noisea3, in3);
sinrab 0:ed1ba99f7b14 702 }
sinrab 0:ed1ba99f7b14 703 //------------------------------------------------------------------------------------------------------------
sinrab 1:7bc0f280c259 704 void drawScreen3(void) // экран 3 установка часов
sinrab 0:ed1ba99f7b14 705 {
sinrab 0:ed1ba99f7b14 706 if (complit==0) {
sinrab 1:7bc0f280c259 707 TFT.background(back5);
sinrab 1:7bc0f280c259 708 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 709 TFT.cls();
sinrab 0:ed1ba99f7b14 710 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 711 }
sinrab 1:7bc0f280c259 712 TFT.background(back5);
sinrab 1:7bc0f280c259 713 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 714 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 1:7bc0f280c259 715 char buffer[32];
sinrab 1:7bc0f280c259 716 seconds=time(NULL);
sinrab 1:7bc0f280c259 717 strftime(buffer, 32, "%H:%M:%S %d.%m.%Y", localtime(&seconds));
sinrab 1:7bc0f280c259 718 TFT.locate (0,0);
sinrab 1:7bc0f280c259 719 printf("------- Set Time --------\n");
sinrab 1:7bc0f280c259 720 TFT.background(back5_i);
sinrab 1:7bc0f280c259 721 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 722 TFT.locate (30,25);
sinrab 1:7bc0f280c259 723 printf("%s", buffer); //вывод реального времени
sinrab 1:7bc0f280c259 724 TFT.background(back5);
sinrab 1:7bc0f280c259 725 TFT.foreground(text5);
sinrab 1:7bc0f280c259 726 TFT.locate (28,86);
sinrab 1:7bc0f280c259 727 printf("%02d:%02d:%02d %02d.%02d.%04d",hour, min, sec, day, mon, year); //вывод то что установим
sinrab 1:7bc0f280c259 728 //-----------------------------------1
sinrab 1:7bc0f280c259 729 if (nline==1) {
sinrab 1:7bc0f280c259 730 if (pmenu==1) {
sinrab 1:7bc0f280c259 731 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 732 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 733 } else {
sinrab 1:7bc0f280c259 734 TFT.background(back5_i);
sinrab 1:7bc0f280c259 735 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 736 }
sinrab 1:7bc0f280c259 737 TFT.locate(28,64);
sinrab 1:7bc0f280c259 738 printf(" ");
sinrab 1:7bc0f280c259 739 } else {
sinrab 1:7bc0f280c259 740 TFT.locate(28,64);
sinrab 1:7bc0f280c259 741 TFT.background(back5);
sinrab 1:7bc0f280c259 742 TFT.foreground(back5);
sinrab 1:7bc0f280c259 743 printf(" ");
sinrab 1:7bc0f280c259 744 }
sinrab 1:7bc0f280c259 745 //-----------------------------------2
sinrab 1:7bc0f280c259 746 if (nline==2) {
sinrab 1:7bc0f280c259 747 if (pmenu==1) {
sinrab 1:7bc0f280c259 748 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 749 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 750 } else {
sinrab 1:7bc0f280c259 751 TFT.background(back5_i);
sinrab 1:7bc0f280c259 752 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 753 }
sinrab 1:7bc0f280c259 754 TFT.locate(64,64);
sinrab 1:7bc0f280c259 755 printf(" ");
sinrab 1:7bc0f280c259 756 } else {
sinrab 1:7bc0f280c259 757 TFT.locate(64,64);
sinrab 1:7bc0f280c259 758 TFT.background(back5);
sinrab 1:7bc0f280c259 759 TFT.foreground(back5);
sinrab 1:7bc0f280c259 760 printf(" ");
sinrab 1:7bc0f280c259 761 }
sinrab 1:7bc0f280c259 762 //-----------------------------------3
sinrab 1:7bc0f280c259 763 if (nline==3) {
sinrab 1:7bc0f280c259 764 if (pmenu==1) {
sinrab 1:7bc0f280c259 765 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 766 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 767 } else {
sinrab 1:7bc0f280c259 768 TFT.background(back5_i);
sinrab 1:7bc0f280c259 769 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 770 }
sinrab 1:7bc0f280c259 771 TFT.locate(100,64);
sinrab 1:7bc0f280c259 772 printf(" ");
sinrab 1:7bc0f280c259 773 } else {
sinrab 1:7bc0f280c259 774 TFT.locate(100,64);
sinrab 1:7bc0f280c259 775 TFT.background(back5);
sinrab 1:7bc0f280c259 776 TFT.foreground(back5);
sinrab 1:7bc0f280c259 777 printf(" ");
sinrab 1:7bc0f280c259 778 }
sinrab 1:7bc0f280c259 779 //-----------------------------------4
sinrab 1:7bc0f280c259 780 if (nline==4) {
sinrab 1:7bc0f280c259 781 if (pmenu==1) {
sinrab 1:7bc0f280c259 782 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 783 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 784 } else {
sinrab 1:7bc0f280c259 785 TFT.background(back5_i);
sinrab 1:7bc0f280c259 786 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 787 }
sinrab 1:7bc0f280c259 788 TFT.locate(135,64);
sinrab 1:7bc0f280c259 789 printf(" ");
sinrab 1:7bc0f280c259 790 } else {
sinrab 1:7bc0f280c259 791 TFT.locate(135,64);
sinrab 1:7bc0f280c259 792 TFT.background(back5);
sinrab 1:7bc0f280c259 793 TFT.foreground(back5);
sinrab 1:7bc0f280c259 794 printf(" ");
sinrab 1:7bc0f280c259 795 }
sinrab 1:7bc0f280c259 796 //-----------------------------------5
sinrab 1:7bc0f280c259 797 if (nline==5) {
sinrab 1:7bc0f280c259 798 if (pmenu==1) {
sinrab 1:7bc0f280c259 799 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 800 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 801 } else {
sinrab 1:7bc0f280c259 802 TFT.background(back5_i);
sinrab 1:7bc0f280c259 803 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 804 }
sinrab 1:7bc0f280c259 805 TFT.locate(170,64);
sinrab 1:7bc0f280c259 806 printf(" ");
sinrab 1:7bc0f280c259 807 } else {
sinrab 1:7bc0f280c259 808 TFT.locate(170,64);
sinrab 1:7bc0f280c259 809 TFT.background(back5);
sinrab 1:7bc0f280c259 810 TFT.foreground(back5);
sinrab 1:7bc0f280c259 811 printf(" ");
sinrab 1:7bc0f280c259 812 }
sinrab 1:7bc0f280c259 813 //-----------------------------------6
sinrab 1:7bc0f280c259 814 if (nline==6) {
sinrab 1:7bc0f280c259 815 if (pmenu==1) {
sinrab 1:7bc0f280c259 816 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 817 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 818 } else {
sinrab 1:7bc0f280c259 819 TFT.background(back5_i);
sinrab 1:7bc0f280c259 820 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 821 }
sinrab 1:7bc0f280c259 822 TFT.locate(205,64);
sinrab 1:7bc0f280c259 823 printf(" ");
sinrab 1:7bc0f280c259 824 } else {
sinrab 1:7bc0f280c259 825 TFT.locate(205,64);
sinrab 1:7bc0f280c259 826 TFT.background(back5);
sinrab 1:7bc0f280c259 827 TFT.foreground(back5);
sinrab 1:7bc0f280c259 828 printf(" ");
sinrab 1:7bc0f280c259 829 }
sinrab 1:7bc0f280c259 830 //-----------------------------------7
sinrab 1:7bc0f280c259 831 if (nline==7) {
sinrab 1:7bc0f280c259 832 if (pmenu==1) {
sinrab 1:7bc0f280c259 833 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 834 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 835 } else {
sinrab 1:7bc0f280c259 836 TFT.background(back5_i);
sinrab 1:7bc0f280c259 837 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 838 }
sinrab 1:7bc0f280c259 839 TFT.locate(30,120);
sinrab 1:7bc0f280c259 840 printf("Set!");
sinrab 1:7bc0f280c259 841 } else {
sinrab 1:7bc0f280c259 842 TFT.locate(30,120);
sinrab 1:7bc0f280c259 843 TFT.background(back5);
sinrab 1:7bc0f280c259 844 TFT.foreground(text5);
sinrab 1:7bc0f280c259 845 printf("Set!");
sinrab 1:7bc0f280c259 846 }
sinrab 1:7bc0f280c259 847 //-----------------------------------
sinrab 1:7bc0f280c259 848 //-----------------------------------7
sinrab 1:7bc0f280c259 849 if (nline==8) {
sinrab 1:7bc0f280c259 850 if (pmenu==1) {
sinrab 1:7bc0f280c259 851 TFT.background(back5_iset);
sinrab 1:7bc0f280c259 852 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 853 } else {
sinrab 1:7bc0f280c259 854 TFT.background(0xFB2C);
sinrab 1:7bc0f280c259 855 TFT.foreground(text5_i);
sinrab 1:7bc0f280c259 856 }
sinrab 1:7bc0f280c259 857 TFT.locate(30,170);
sinrab 1:7bc0f280c259 858 printf("Exit");
sinrab 1:7bc0f280c259 859 } else {
sinrab 1:7bc0f280c259 860 TFT.locate(30,170);
sinrab 1:7bc0f280c259 861 TFT.background(back5);
sinrab 1:7bc0f280c259 862 TFT.foreground(text5);
sinrab 1:7bc0f280c259 863 printf("Exit");
sinrab 1:7bc0f280c259 864 }
sinrab 1:7bc0f280c259 865 //-----------------------------------
sinrab 1:7bc0f280c259 866
sinrab 0:ed1ba99f7b14 867 }
sinrab 0:ed1ba99f7b14 868 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 869 void drawScreen4(void) // экран 4 калибровка
sinrab 0:ed1ba99f7b14 870 {
sinrab 0:ed1ba99f7b14 871 if (complit==0) {
sinrab 0:ed1ba99f7b14 872 TFT.background(back4);
sinrab 0:ed1ba99f7b14 873 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 874 TFT.cls();
sinrab 0:ed1ba99f7b14 875 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 876 }
sinrab 0:ed1ba99f7b14 877 //---------------------------------------------------------------- text4 back4 text4_i back4_i
sinrab 0:ed1ba99f7b14 878 TFT.background(back4);
sinrab 0:ed1ba99f7b14 879 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 880 TFT.locate(0, 0);
sinrab 0:ed1ba99f7b14 881 TFT.set_font((unsigned char*) Courier8x13);
sinrab 0:ed1ba99f7b14 882 printf(" Calibration. Enter - set. \n");
sinrab 0:ed1ba99f7b14 883 printf("--------------------------- \n");
sinrab 0:ed1ba99f7b14 884 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 885 if (kline==1) {
sinrab 0:ed1ba99f7b14 886 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 887 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 888 } else {
sinrab 0:ed1ba99f7b14 889 TFT.background(back4);
sinrab 0:ed1ba99f7b14 890 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 891 }
sinrab 3:791cf9a867d1 892 printf(" U 5v = %06.3f set zero \n", U5); // U real A0 zero
sinrab 0:ed1ba99f7b14 893 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 894 if (kline==2) {
sinrab 0:ed1ba99f7b14 895 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 896 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 897 } else {
sinrab 0:ed1ba99f7b14 898 TFT.background(back4);
sinrab 0:ed1ba99f7b14 899 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 900 }
sinrab 4:776f59129c24 901 printf(" U 5v = %06.3f set up \n", U5); // U real A0 hi
sinrab 0:ed1ba99f7b14 902 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 903 if (kline==3) {
sinrab 0:ed1ba99f7b14 904 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 905 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 906 } else {
sinrab 0:ed1ba99f7b14 907 TFT.background(back4);
sinrab 0:ed1ba99f7b14 908 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 909 }
sinrab 4:776f59129c24 910 printf(" I real = %06.1f set zero \n", Ireal); // I real A1 zero
sinrab 0:ed1ba99f7b14 911 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 912 if (kline==4) {
sinrab 0:ed1ba99f7b14 913 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 914 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 915 } else {
sinrab 0:ed1ba99f7b14 916 TFT.background(back4);
sinrab 0:ed1ba99f7b14 917 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 918 }
sinrab 4:776f59129c24 919 printf(" I real = %06.1f set up \n", Ireal); // I real A1 hi
sinrab 0:ed1ba99f7b14 920 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 921 if (kline==5) {
sinrab 0:ed1ba99f7b14 922 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 923 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 924 } else {
sinrab 0:ed1ba99f7b14 925 TFT.background(back4);
sinrab 0:ed1ba99f7b14 926 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 927 }
sinrab 4:776f59129c24 928 printf(" U high v = %06.3f set zero\n", U30); // U set A2 zero
sinrab 0:ed1ba99f7b14 929 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 930 if (kline==6) {
sinrab 0:ed1ba99f7b14 931 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 932 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 933 } else {
sinrab 0:ed1ba99f7b14 934 TFT.background(back4);
sinrab 0:ed1ba99f7b14 935 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 936 }
sinrab 4:776f59129c24 937 printf(" U high v = %06.3f set up \n", U30); // U set A2 hi
sinrab 0:ed1ba99f7b14 938 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 939 if (kline==7) {
sinrab 0:ed1ba99f7b14 940 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 941 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 942 } else {
sinrab 0:ed1ba99f7b14 943 TFT.background(back4);
sinrab 0:ed1ba99f7b14 944 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 945 }
sinrab 4:776f59129c24 946 printf(" -\n"); // I set A3 zero
sinrab 0:ed1ba99f7b14 947 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 948 if (kline==8) {
sinrab 0:ed1ba99f7b14 949 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 950 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 951 } else {
sinrab 0:ed1ba99f7b14 952 TFT.background(back4);
sinrab 0:ed1ba99f7b14 953 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 954 }
sinrab 4:776f59129c24 955 printf(" -\n"); // I set A3 hi
sinrab 0:ed1ba99f7b14 956 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 957 if (kline==9) {
sinrab 0:ed1ba99f7b14 958 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 959 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 960 } else {
sinrab 0:ed1ba99f7b14 961 TFT.background(back4);
sinrab 0:ed1ba99f7b14 962 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 963 }
sinrab 4:776f59129c24 964 printf(" -\n"); // U usb A4 zero
sinrab 0:ed1ba99f7b14 965 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 966 if (kline==10) {
sinrab 0:ed1ba99f7b14 967 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 968 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 969 } else {
sinrab 0:ed1ba99f7b14 970 TFT.background(back4);
sinrab 0:ed1ba99f7b14 971 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 972 }
sinrab 5:0b3c71d7e475 973 printf(" -.\n"); // U usb A4 hi
sinrab 0:ed1ba99f7b14 974 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 975 if (kline==11) {
sinrab 0:ed1ba99f7b14 976 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 977 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 978 } else {
sinrab 0:ed1ba99f7b14 979 TFT.background(back4);
sinrab 0:ed1ba99f7b14 980 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 981 }
sinrab 5:0b3c71d7e475 982 printf(" -,\n"); // I usb A5 zero
sinrab 0:ed1ba99f7b14 983 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 984 if (kline==12) {
sinrab 0:ed1ba99f7b14 985 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 986 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 987 } else {
sinrab 0:ed1ba99f7b14 988 TFT.background(back4);
sinrab 0:ed1ba99f7b14 989 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 990 }
sinrab 4:776f59129c24 991 printf(" -\n"); // I usb A5 hi
sinrab 0:ed1ba99f7b14 992 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 993 if (kline==13) {
sinrab 0:ed1ba99f7b14 994 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 995 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 996 } else {
sinrab 0:ed1ba99f7b14 997 TFT.background(back4);
sinrab 0:ed1ba99f7b14 998 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 999 }
sinrab 5:0b3c71d7e475 1000 //printf(" Load Default \n");
sinrab 5:0b3c71d7e475 1001 printf(" Load Default calibration \n");
sinrab 0:ed1ba99f7b14 1002 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1003 if (kline==14) {
sinrab 0:ed1ba99f7b14 1004 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 1005 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 1006 } else {
sinrab 0:ed1ba99f7b14 1007 TFT.background(back4);
sinrab 0:ed1ba99f7b14 1008 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 1009 }
sinrab 5:0b3c71d7e475 1010 //printf(" Save all to flash memory \n");
sinrab 5:0b3c71d7e475 1011 printf(" Save calibration to flash memory\n");
sinrab 0:ed1ba99f7b14 1012 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1013 if (kline==15) {
sinrab 0:ed1ba99f7b14 1014 TFT.background(back4_i);
sinrab 0:ed1ba99f7b14 1015 TFT.foreground(text4_i);
sinrab 0:ed1ba99f7b14 1016 } else {
sinrab 0:ed1ba99f7b14 1017 TFT.background(back4);
sinrab 0:ed1ba99f7b14 1018 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 1019 }
sinrab 0:ed1ba99f7b14 1020 printf(" Exit \n");
sinrab 0:ed1ba99f7b14 1021 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1022 TFT.background(back4);
sinrab 0:ed1ba99f7b14 1023 TFT.foreground(text4);
sinrab 0:ed1ba99f7b14 1024 printf("--------------------------- \n");
sinrab 0:ed1ba99f7b14 1025
sinrab 0:ed1ba99f7b14 1026
sinrab 0:ed1ba99f7b14 1027 }
sinrab 0:ed1ba99f7b14 1028 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1029 void drawScreen5(void) //экран 5 Настройки главная
sinrab 0:ed1ba99f7b14 1030 {
sinrab 0:ed1ba99f7b14 1031 if (complit==0) {
sinrab 0:ed1ba99f7b14 1032 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1033 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1034 TFT.cls();
sinrab 0:ed1ba99f7b14 1035 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 1036 }
sinrab 0:ed1ba99f7b14 1037
sinrab 0:ed1ba99f7b14 1038 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1039 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1040 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1041 TFT.locate(0, 0);
sinrab 0:ed1ba99f7b14 1042 TFT.set_font((unsigned char*) Courier8x13);
sinrab 3:791cf9a867d1 1043 printf(" Settings \n");
sinrab 3:791cf9a867d1 1044 printf("--------------------------------------- \n");
sinrab 0:ed1ba99f7b14 1045 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1046 if (mline==1) {
sinrab 0:ed1ba99f7b14 1047 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 1048 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 1049 } else {
sinrab 0:ed1ba99f7b14 1050 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1051 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1052 }
sinrab 3:791cf9a867d1 1053 printf(" Set Time \n"); // 1
sinrab 0:ed1ba99f7b14 1054 //----------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1055 if (mline==2) {
sinrab 0:ed1ba99f7b14 1056 if (pmenu==1) {
sinrab 0:ed1ba99f7b14 1057 TFT.background(back5_iset);
sinrab 0:ed1ba99f7b14 1058 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 1059 } else {
sinrab 0:ed1ba99f7b14 1060 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 1061 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 1062 }
sinrab 0:ed1ba99f7b14 1063 } else {
sinrab 0:ed1ba99f7b14 1064 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1065 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1066 }
sinrab 4:776f59129c24 1067 printf(" Backlight brightness = %03.0f \n", brightness*100); // 1
sinrab 0:ed1ba99f7b14 1068 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1069 if (mline==3) {
sinrab 4:776f59129c24 1070 if (pmenu==1) {
sinrab 4:776f59129c24 1071 TFT.background(back5_iset);
sinrab 4:776f59129c24 1072 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1073 } else {
sinrab 4:776f59129c24 1074 TFT.background(back5_i);
sinrab 4:776f59129c24 1075 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1076 }
sinrab 0:ed1ba99f7b14 1077 } else {
sinrab 0:ed1ba99f7b14 1078 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1079 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1080 }
sinrab 4:776f59129c24 1081 if (beeper==1) {
sinrab 4:776f59129c24 1082 printf(" Sound beep %s \n", ron);
sinrab 4:776f59129c24 1083 } else {
sinrab 4:776f59129c24 1084 printf(" Sound beep %s \n", roff);
sinrab 4:776f59129c24 1085 }
sinrab 0:ed1ba99f7b14 1086 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1087 if (mline==4) {
sinrab 3:791cf9a867d1 1088 if (pmenu==1) {
sinrab 3:791cf9a867d1 1089 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 1090 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1091 } else {
sinrab 3:791cf9a867d1 1092 TFT.background(back5_i);
sinrab 3:791cf9a867d1 1093 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1094 }
sinrab 0:ed1ba99f7b14 1095 } else {
sinrab 0:ed1ba99f7b14 1096 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1097 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1098 }
sinrab 4:776f59129c24 1099 printf(" Fan start - t %02d 'c \n", tempstart); // 1 tempstart
sinrab 0:ed1ba99f7b14 1100 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1101 if (mline==5) {
sinrab 3:791cf9a867d1 1102 if (pmenu==1) {
sinrab 3:791cf9a867d1 1103 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 1104 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1105 } else {
sinrab 3:791cf9a867d1 1106 TFT.background(back5_i);
sinrab 3:791cf9a867d1 1107 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1108 }
sinrab 0:ed1ba99f7b14 1109 } else {
sinrab 0:ed1ba99f7b14 1110 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1111 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1112 }
sinrab 4:776f59129c24 1113 printf(" Fan full speed - t %02d 'c \n", tempfull); // 1 tempfull
sinrab 0:ed1ba99f7b14 1114 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1115 if (mline==6) {
sinrab 3:791cf9a867d1 1116 if (pmenu==1) {
sinrab 3:791cf9a867d1 1117 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 1118 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1119 } else {
sinrab 3:791cf9a867d1 1120 TFT.background(back5_i);
sinrab 3:791cf9a867d1 1121 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1122 }
sinrab 0:ed1ba99f7b14 1123 } else {
sinrab 0:ed1ba99f7b14 1124 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1125 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1126 }
sinrab 4:776f59129c24 1127 printf(" Power cut off - t %02d 'c \n", tempcutoff); // 1 tempcutoff
sinrab 0:ed1ba99f7b14 1128 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1129 if (mline==7) {
sinrab 3:791cf9a867d1 1130 if (pmenu==1) {
sinrab 3:791cf9a867d1 1131 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 1132 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1133 } else {
sinrab 3:791cf9a867d1 1134 TFT.background(back5_i);
sinrab 3:791cf9a867d1 1135 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1136 }
sinrab 0:ed1ba99f7b14 1137 } else {
sinrab 0:ed1ba99f7b14 1138 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1139 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1140 }
sinrab 4:776f59129c24 1141 if (rdown_on==1) {
sinrab 3:791cf9a867d1 1142 printf(" Voltmeter adjustment on R %s \n", ron); // падение на R вкл выкл
sinrab 3:791cf9a867d1 1143 } else {
sinrab 3:791cf9a867d1 1144 printf(" Voltmeter adjustment on R %s \n", roff);
sinrab 3:791cf9a867d1 1145 }
sinrab 0:ed1ba99f7b14 1146 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1147 if (mline==8) {
sinrab 3:791cf9a867d1 1148 if (pmenu==1) {
sinrab 3:791cf9a867d1 1149 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 1150 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1151 } else {
sinrab 3:791cf9a867d1 1152 TFT.background(back5_i);
sinrab 3:791cf9a867d1 1153 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1154 }
sinrab 0:ed1ba99f7b14 1155 } else {
sinrab 0:ed1ba99f7b14 1156 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1157 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1158 }
sinrab 3:791cf9a867d1 1159 printf(" Current sense shunt, R = %05.3f om\n", rdown); // значения сопротивления шунта
sinrab 0:ed1ba99f7b14 1160 //------- -----------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1161 if (mline==9) {
sinrab 0:ed1ba99f7b14 1162 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 1163 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 1164 } else {
sinrab 0:ed1ba99f7b14 1165 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1166 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1167 }
sinrab 3:791cf9a867d1 1168 printf(" Calibration I, U \n"); // 1
sinrab 0:ed1ba99f7b14 1169 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1170 if (mline==10) {
sinrab 0:ed1ba99f7b14 1171 TFT.background(back5_i);
sinrab 0:ed1ba99f7b14 1172 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 1173 } else {
sinrab 0:ed1ba99f7b14 1174 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1175 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1176 }
sinrab 3:791cf9a867d1 1177 printf(" Data analog in, noise \n"); // 1
sinrab 0:ed1ba99f7b14 1178 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1179 if (mline==11) {
sinrab 3:791cf9a867d1 1180 if (pmenu==1) {
sinrab 3:791cf9a867d1 1181 TFT.background(back5_iset);
sinrab 3:791cf9a867d1 1182 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1183 } else {
sinrab 3:791cf9a867d1 1184 TFT.background(back5_i);
sinrab 3:791cf9a867d1 1185 TFT.foreground(text5_i);
sinrab 3:791cf9a867d1 1186 }
sinrab 0:ed1ba99f7b14 1187 } else {
sinrab 0:ed1ba99f7b14 1188 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1189 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1190 }
sinrab 4:776f59129c24 1191 printf(" U max %02.0d V \n", umax); // U max
sinrab 0:ed1ba99f7b14 1192 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1193 if (mline==12) {
sinrab 4:776f59129c24 1194 if (pmenu==1) {
sinrab 4:776f59129c24 1195 TFT.background(back5_iset);
sinrab 4:776f59129c24 1196 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1197 } else {
sinrab 4:776f59129c24 1198 TFT.background(back5_i);
sinrab 4:776f59129c24 1199 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1200 }
sinrab 0:ed1ba99f7b14 1201 } else {
sinrab 0:ed1ba99f7b14 1202 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1203 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1204 }
sinrab 4:776f59129c24 1205 printf(" I max %03.1f A \n", imax); // I max
sinrab 0:ed1ba99f7b14 1206 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1207 if (mline==13) {
sinrab 4:776f59129c24 1208 if (pmenu==1) {
sinrab 4:776f59129c24 1209 TFT.background(back5_iset);
sinrab 4:776f59129c24 1210 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1211 } else {
sinrab 4:776f59129c24 1212 TFT.background(back5_i);
sinrab 4:776f59129c24 1213 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1214 }
sinrab 0:ed1ba99f7b14 1215 } else {
sinrab 0:ed1ba99f7b14 1216 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1217 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1218 }
sinrab 4:776f59129c24 1219 printf(" Screen saver %d \n", screensaver); // Screen saver
sinrab 0:ed1ba99f7b14 1220 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1221 if (mline==14) {
sinrab 4:776f59129c24 1222 if (pmenu==1) {
sinrab 4:776f59129c24 1223 TFT.background(back5_iset);
sinrab 4:776f59129c24 1224 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1225 } else {
sinrab 4:776f59129c24 1226 TFT.background(back5_i);
sinrab 4:776f59129c24 1227 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1228 }
sinrab 0:ed1ba99f7b14 1229 } else {
sinrab 0:ed1ba99f7b14 1230 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1231 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1232 }
sinrab 4:776f59129c24 1233 printf(" Load default settings and save to flash\n"); // 1
sinrab 0:ed1ba99f7b14 1234 //------------------------------------*---------------------------
sinrab 0:ed1ba99f7b14 1235 if (mline==15) {
sinrab 0:ed1ba99f7b14 1236 TFT.background(0xFB2C);
sinrab 0:ed1ba99f7b14 1237 TFT.foreground(text5_i);
sinrab 0:ed1ba99f7b14 1238 } else {
sinrab 0:ed1ba99f7b14 1239 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1240 TFT.foreground(text5);
sinrab 0:ed1ba99f7b14 1241 }
sinrab 3:791cf9a867d1 1242 printf(" Exit \n");
sinrab 0:ed1ba99f7b14 1243 //--------------------------------------*-------------------------
sinrab 0:ed1ba99f7b14 1244 TFT.background(back5);
sinrab 0:ed1ba99f7b14 1245 TFT.foreground(text5);
sinrab 3:791cf9a867d1 1246 printf("--------------------------------------- \n");
sinrab 0:ed1ba99f7b14 1247
sinrab 0:ed1ba99f7b14 1248
sinrab 0:ed1ba99f7b14 1249 }
sinrab 0:ed1ba99f7b14 1250 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1251 void drawScreen6(void) //экран 6
sinrab 0:ed1ba99f7b14 1252 {
sinrab 0:ed1ba99f7b14 1253 if (complit==0) {
sinrab 3:791cf9a867d1 1254 TFT.background(Black);
sinrab 3:791cf9a867d1 1255 TFT.foreground(White);
sinrab 0:ed1ba99f7b14 1256 TFT.cls();
sinrab 0:ed1ba99f7b14 1257 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 1258 }
sinrab 3:791cf9a867d1 1259 TFT.set_font((unsigned char*) digi36x44);
sinrab 3:791cf9a867d1 1260 TFT.foreground(Green);
sinrab 3:791cf9a867d1 1261 TFT.locate(10, 10);
sinrab 3:791cf9a867d1 1262 TFT.printf("%06.1f", Ireal);
sinrab 3:791cf9a867d1 1263 TFT.locate(10, 85);
sinrab 3:791cf9a867d1 1264 TFT.printf("%05.3f", U5);
sinrab 4:776f59129c24 1265
sinrab 3:791cf9a867d1 1266 TFT.locate(10, 150);
sinrab 3:791cf9a867d1 1267 TFT.printf("%d", int(U30));
sinrab 0:ed1ba99f7b14 1268
sinrab 0:ed1ba99f7b14 1269
sinrab 0:ed1ba99f7b14 1270 }
sinrab 0:ed1ba99f7b14 1271 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1272 void drawScreen7(void) //экран 7
sinrab 0:ed1ba99f7b14 1273 {
sinrab 0:ed1ba99f7b14 1274 if (complit==0) {
sinrab 0:ed1ba99f7b14 1275 TFT.background(Blue);
sinrab 4:776f59129c24 1276 TFT.foreground(White);
sinrab 0:ed1ba99f7b14 1277 TFT.cls();
sinrab 0:ed1ba99f7b14 1278 complit = 1; // прорисовали!
sinrab 4:776f59129c24 1279
sinrab 4:776f59129c24 1280 TFT.line(0,40,319,40,Black);
sinrab 4:776f59129c24 1281 TFT.line(0,80,319,80,Black);
sinrab 4:776f59129c24 1282 TFT.line(0,120,319,120,Black);
sinrab 4:776f59129c24 1283 TFT.line(0,160,319,160,Black);
sinrab 4:776f59129c24 1284 TFT.line(0,200,319,200,Black);
sinrab 0:ed1ba99f7b14 1285 }
sinrab 4:776f59129c24 1286
sinrab 4:776f59129c24 1287 TFT.background(Blue);
sinrab 4:776f59129c24 1288 TFT.foreground(White);
sinrab 4:776f59129c24 1289 iiii++;
sinrab 4:776f59129c24 1290 if (iiii==320) {
sinrab 4:776f59129c24 1291 iiii=0;
sinrab 4:776f59129c24 1292 TFT.background(Blue);
sinrab 4:776f59129c24 1293 TFT.foreground(White);
sinrab 4:776f59129c24 1294 TFT.cls();
sinrab 4:776f59129c24 1295 TFT.line(0,40,319,40,Black);
sinrab 4:776f59129c24 1296 TFT.line(0,80,319,80,Black);
sinrab 4:776f59129c24 1297 TFT.line(0,120,319,120,Black);
sinrab 4:776f59129c24 1298 TFT.line(0,160,319,160,Black);
sinrab 4:776f59129c24 1299 TFT.line(0,200,319,200,Black);
sinrab 4:776f59129c24 1300 }
sinrab 4:776f59129c24 1301 int b = noisea1*40;
sinrab 4:776f59129c24 1302 TFT.locate(5,5);
sinrab 4:776f59129c24 1303 TFT.set_font((unsigned char*) Courier8x13);
sinrab 4:776f59129c24 1304 printf("I A1 noise= %0.1f, avg= %0.5f \n", noisea1, in1);
sinrab 4:776f59129c24 1305 printf(" I real = %06.1f set zero \n", Ireal);
sinrab 4:776f59129c24 1306 TFT.line(iiii,245-b,iiii,240-b, White);
sinrab 4:776f59129c24 1307 //TFT.pixel(iiii,240-b,White);
sinrab 4:776f59129c24 1308
sinrab 4:776f59129c24 1309 wait(0.01);
sinrab 0:ed1ba99f7b14 1310 }
sinrab 0:ed1ba99f7b14 1311 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1312 void drawScreen8(void) //экран 8
sinrab 0:ed1ba99f7b14 1313 {
sinrab 0:ed1ba99f7b14 1314 if (complit==0) {
sinrab 4:776f59129c24 1315 TFT.background(Black);
sinrab 4:776f59129c24 1316 TFT.foreground(White);
sinrab 0:ed1ba99f7b14 1317 TFT.cls();
sinrab 0:ed1ba99f7b14 1318 complit = 1; // прорисовали!
sinrab 0:ed1ba99f7b14 1319 }
sinrab 0:ed1ba99f7b14 1320
sinrab 4:776f59129c24 1321 TFT.set_font((unsigned char*) Lucida13x21);
sinrab 4:776f59129c24 1322 char buffer[32];
sinrab 4:776f59129c24 1323 seconds=time(NULL);
sinrab 4:776f59129c24 1324 strftime(buffer, 32, "%H:%M:%S %d.%m.%Y", localtime(&seconds));
sinrab 4:776f59129c24 1325 TFT.background(back5_i);
sinrab 4:776f59129c24 1326 TFT.foreground(text5_i);
sinrab 4:776f59129c24 1327 TFT.locate (30,25);
sinrab 4:776f59129c24 1328 printf("%s", buffer); //вывод реального времени
sinrab 0:ed1ba99f7b14 1329 }
sinrab 0:ed1ba99f7b14 1330 //------------------------------------------------------------------------------------------------------------
sinrab 2:d20b1ef35d3f 1331 float map(float x, float in_min, float in_max, float out_min, float out_max) // функция масштабирования
sinrab 0:ed1ba99f7b14 1332 {
sinrab 0:ed1ba99f7b14 1333 return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
sinrab 0:ed1ba99f7b14 1334 }
sinrab 0:ed1ba99f7b14 1335 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1336 float avgAin0() // функция среднего значения с входа A0
sinrab 0:ed1ba99f7b14 1337 {
sinrab 0:ed1ba99f7b14 1338 int m = 100;
sinrab 0:ed1ba99f7b14 1339 float value[m];
sinrab 0:ed1ba99f7b14 1340 float max;
sinrab 0:ed1ba99f7b14 1341 float min;
sinrab 0:ed1ba99f7b14 1342 double itg;
sinrab 0:ed1ba99f7b14 1343 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1344 min = 3.3;
sinrab 0:ed1ba99f7b14 1345 for (int i=0; i<m; i++) {
sinrab 0:ed1ba99f7b14 1346 value[i] = ainA0;
sinrab 0:ed1ba99f7b14 1347 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1348 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1349 itg += value[i];
sinrab 0:ed1ba99f7b14 1350 }
sinrab 0:ed1ba99f7b14 1351 noisea0 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1352 return itg/m;
sinrab 0:ed1ba99f7b14 1353 }
sinrab 0:ed1ba99f7b14 1354 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1355 float avgAin1() // функция среднего значения с входа A1
sinrab 0:ed1ba99f7b14 1356 {
sinrab 0:ed1ba99f7b14 1357 float value[100];
sinrab 0:ed1ba99f7b14 1358 float max;
sinrab 0:ed1ba99f7b14 1359 float min;
sinrab 0:ed1ba99f7b14 1360 double itg;
sinrab 0:ed1ba99f7b14 1361 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1362 min = 3.3;
sinrab 0:ed1ba99f7b14 1363 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1364 value[i] = ainA1;
sinrab 0:ed1ba99f7b14 1365 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1366 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1367 itg += value[i];
sinrab 0:ed1ba99f7b14 1368 }
sinrab 0:ed1ba99f7b14 1369 noisea1 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1370 return itg/100;
sinrab 0:ed1ba99f7b14 1371 }
sinrab 0:ed1ba99f7b14 1372 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1373 float avgAin2() // функция среднего значения с входа A2
sinrab 0:ed1ba99f7b14 1374 {
sinrab 0:ed1ba99f7b14 1375 float value[100];
sinrab 0:ed1ba99f7b14 1376 float max;
sinrab 0:ed1ba99f7b14 1377 float min;
sinrab 0:ed1ba99f7b14 1378 double itg;
sinrab 0:ed1ba99f7b14 1379 max = itg = 0.0;
sinrab 0:ed1ba99f7b14 1380 min = 3.3;
sinrab 0:ed1ba99f7b14 1381 for (int i=0; i<100; i++) {
sinrab 0:ed1ba99f7b14 1382 value[i] = ainA2;
sinrab 0:ed1ba99f7b14 1383 if (value[i] > max) max = value[i];
sinrab 0:ed1ba99f7b14 1384 if (value[i] < min) min = value[i];
sinrab 0:ed1ba99f7b14 1385 itg += value[i];
sinrab 0:ed1ba99f7b14 1386 }
sinrab 0:ed1ba99f7b14 1387 noisea2 = (max - min)*1000;
sinrab 0:ed1ba99f7b14 1388 return itg/100;
sinrab 0:ed1ba99f7b14 1389 }
sinrab 0:ed1ba99f7b14 1390 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1391 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1392 void dataProcessing(void) // обработка и подготовка данных с аналоговых входов
sinrab 0:ed1ba99f7b14 1393 {
sinrab 0:ed1ba99f7b14 1394 /*t.reset();// FPS
sinrab 0:ed1ba99f7b14 1395 t.start();// FPS*/
sinrab 0:ed1ba99f7b14 1396
sinrab 0:ed1ba99f7b14 1397 in0 = avgAin0();
sinrab 0:ed1ba99f7b14 1398 in1 = avgAin1();
sinrab 0:ed1ba99f7b14 1399 in2 = avgAin2();
sinrab 3:791cf9a867d1 1400 //in4 = avgAin4();
sinrab 3:791cf9a867d1 1401 //in5 = avgAin5();
sinrab 0:ed1ba99f7b14 1402
sinrab 0:ed1ba99f7b14 1403 // A0 U real U = (avgAin0() - a0a) * a0k
sinrab 0:ed1ba99f7b14 1404 // A1 I real I = (avgAin1() - a1a) * a1k
sinrab 0:ed1ba99f7b14 1405 // A2 U set U = (avgAin2() - a2a) * a2k
sinrab 0:ed1ba99f7b14 1406 // A3 I set I = (avgAin3() - a3a) * a3k
sinrab 0:ed1ba99f7b14 1407 // A4 U usb U = (avgAin4() - a4a) * a4k
sinrab 0:ed1ba99f7b14 1408 // A5 I usb I = (avgAin5() - a5a) * a5k
sinrab 0:ed1ba99f7b14 1409
sinrab 4:776f59129c24 1410 Ireal = a1k*1000*(in1-a1a);
sinrab 4:776f59129c24 1411
sinrab 9:84a59e981307 1412 //temperature = map(in3, 0.228, 0.188 , 0, 90); //(in3, 0.232, 0.188 , 0, 90); //преобразование температуры
sinrab 4:776f59129c24 1413
sinrab 4:776f59129c24 1414 if (rdown_on==1) {
sinrab 4:776f59129c24 1415 U5 = a0k*(in0-a0a)+Ireal*rdown/1000;
sinrab 4:776f59129c24 1416 U30 = a2k*(in2-a2a)+Ireal*rdown/1000;
sinrab 4:776f59129c24 1417 } else {
sinrab 4:776f59129c24 1418 U5 = a0k*(in0-a0a);
sinrab 4:776f59129c24 1419 U30 = a2k*(in2-a2a);
sinrab 4:776f59129c24 1420 }
sinrab 4:776f59129c24 1421
sinrab 3:791cf9a867d1 1422 if (cc==1) ledcc=0;
sinrab 3:791cf9a867d1 1423 if (cc==0) ledcc=1;
sinrab 0:ed1ba99f7b14 1424
sinrab 0:ed1ba99f7b14 1425 /*t.stop();// FPS
sinrab 0:ed1ba99f7b14 1426 TFT.background(Black);// FPS
sinrab 0:ed1ba99f7b14 1427 TFT.foreground(Green);// FPS
sinrab 0:ed1ba99f7b14 1428 TFT.set_font((unsigned char*) Courier8x13);// FPS
sinrab 0:ed1ba99f7b14 1429 TFT.locate(260,225);// FPS
sinrab 0:ed1ba99f7b14 1430 TFT.printf("%0.2f", (1/t.read()));// FPS*/
sinrab 0:ed1ba99f7b14 1431 }
sinrab 0:ed1ba99f7b14 1432 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1433 void buttonUse(void) // обработка нажатий кнопок
sinrab 0:ed1ba99f7b14 1434 {
sinrab 4:776f59129c24 1435 if (beeper==1) {
sinrab 4:776f59129c24 1436
sinrab 4:776f59129c24 1437 if (buttonEnter==0) {
sinrab 4:776f59129c24 1438 buzzer.beep(300,0.01);
sinrab 4:776f59129c24 1439 }
sinrab 4:776f59129c24 1440 if (buttonDown==0) {
sinrab 4:776f59129c24 1441 buzzer.beep(300,0.01);
sinrab 4:776f59129c24 1442 }
sinrab 4:776f59129c24 1443 if (buttonUp==0) {
sinrab 4:776f59129c24 1444 buzzer.beep(300,0.01);
sinrab 4:776f59129c24 1445 }
sinrab 4:776f59129c24 1446 }
sinrab 4:776f59129c24 1447
sinrab 4:776f59129c24 1448
sinrab 4:776f59129c24 1449
sinrab 4:776f59129c24 1450
sinrab 0:ed1ba99f7b14 1451 int one=0; // для обработки одной кнопки за раз
sinrab 0:ed1ba99f7b14 1452 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1453 if (Screen==1 & one==0) { //главный экран
sinrab 0:ed1ba99f7b14 1454 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 1455 //wait(1);
sinrab 0:ed1ba99f7b14 1456 Screen=5; // 5 главная настройки
sinrab 0:ed1ba99f7b14 1457 complit=0;
sinrab 0:ed1ba99f7b14 1458 }
sinrab 0:ed1ba99f7b14 1459 if (buttonDown==0) { // Down
sinrab 7:8410439dee73 1460 if (powerMosfet==0){
sinrab 7:8410439dee73 1461 a1a = in1 - 0.000100f; // 2
sinrab 7:8410439dee73 1462 complit=0;
sinrab 7:8410439dee73 1463 } else {
sinrab 7:8410439dee73 1464 Pcapbool2++;
sinrab 7:8410439dee73 1465 if (Pcapbool2 == 4 ) Pcapbool2 = 1;
sinrab 7:8410439dee73 1466 //complit=0;
sinrab 7:8410439dee73 1467 }
sinrab 4:776f59129c24 1468 }
sinrab 0:ed1ba99f7b14 1469 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1470 powerProtect=!powerProtect;
sinrab 0:ed1ba99f7b14 1471 pp=0;
sinrab 0:ed1ba99f7b14 1472 wait(0.2);
sinrab 0:ed1ba99f7b14 1473 }
sinrab 0:ed1ba99f7b14 1474 one=1;
sinrab 0:ed1ba99f7b14 1475 }
sinrab 0:ed1ba99f7b14 1476 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1477 if (Screen==2 & one==0) { //экран 2 analog in, noise
sinrab 0:ed1ba99f7b14 1478 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 1479 //wait(1);
sinrab 0:ed1ba99f7b14 1480 Screen=5; //3
sinrab 0:ed1ba99f7b14 1481 complit=0;
sinrab 0:ed1ba99f7b14 1482 }
sinrab 5:0b3c71d7e475 1483 if (buttonDown==0) { // Down
sinrab 5:0b3c71d7e475 1484 Screen=7;
sinrab 5:0b3c71d7e475 1485 iiii=0;
sinrab 5:0b3c71d7e475 1486 complit=0;
sinrab 5:0b3c71d7e475 1487 }
sinrab 0:ed1ba99f7b14 1488 one=1;
sinrab 0:ed1ba99f7b14 1489 }
sinrab 0:ed1ba99f7b14 1490 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1491 if (Screen==3 & one==0) { //экран 3
sinrab 4:776f59129c24 1492 if(nline==7 & pmenu==1) {
sinrab 4:776f59129c24 1493 wait(0.2);
sinrab 4:776f59129c24 1494 pmenu=0;
sinrab 1:7bc0f280c259 1495 }
sinrab 1:7bc0f280c259 1496 if (buttonEnter==0 & pmenu==0) { // Enter
sinrab 1:7bc0f280c259 1497 pmenu=1;
sinrab 1:7bc0f280c259 1498 wait(0.2);
sinrab 4:776f59129c24 1499 if(nline==7) {
sinrab 1:7bc0f280c259 1500 mon=mon-1;
sinrab 1:7bc0f280c259 1501 SetDateTime();
sinrab 1:7bc0f280c259 1502 mon=mon+1;
sinrab 1:7bc0f280c259 1503 }
sinrab 4:776f59129c24 1504 if(nline==8) {
sinrab 1:7bc0f280c259 1505 pmenu=0;
sinrab 1:7bc0f280c259 1506 Screen=5;
sinrab 1:7bc0f280c259 1507 complit=0;
sinrab 1:7bc0f280c259 1508 }
sinrab 1:7bc0f280c259 1509 }
sinrab 1:7bc0f280c259 1510 if (buttonUp==0 & pmenu==0) { // Up
sinrab 1:7bc0f280c259 1511 nline--;
sinrab 1:7bc0f280c259 1512 wait(0.2);
sinrab 1:7bc0f280c259 1513 if (nline==0) nline=8;
sinrab 1:7bc0f280c259 1514 }
sinrab 1:7bc0f280c259 1515 if (buttonDown==0 & pmenu==0) { // Down
sinrab 1:7bc0f280c259 1516 nline++;
sinrab 1:7bc0f280c259 1517 wait(0.2);
sinrab 1:7bc0f280c259 1518 if (nline==9) nline=1;
sinrab 0:ed1ba99f7b14 1519 }
sinrab 1:7bc0f280c259 1520
sinrab 1:7bc0f280c259 1521 if (pmenu==1) {
sinrab 1:7bc0f280c259 1522 if (buttonEnter==0) {
sinrab 1:7bc0f280c259 1523 pmenu=0;
sinrab 1:7bc0f280c259 1524 wait(0.2);
sinrab 1:7bc0f280c259 1525 }
sinrab 1:7bc0f280c259 1526 if (buttonUp==0) {
sinrab 1:7bc0f280c259 1527 if (nline==1) {
sinrab 1:7bc0f280c259 1528 hour++;
sinrab 1:7bc0f280c259 1529 wait(0.1);
sinrab 1:7bc0f280c259 1530 }
sinrab 1:7bc0f280c259 1531 if (nline==2) {
sinrab 1:7bc0f280c259 1532 min++;
sinrab 1:7bc0f280c259 1533 wait(0.1);
sinrab 1:7bc0f280c259 1534 }
sinrab 1:7bc0f280c259 1535 if (nline==3) {
sinrab 1:7bc0f280c259 1536 sec++;
sinrab 1:7bc0f280c259 1537 wait(0.1);
sinrab 1:7bc0f280c259 1538 }
sinrab 1:7bc0f280c259 1539 if (nline==4) {
sinrab 1:7bc0f280c259 1540 day++;
sinrab 1:7bc0f280c259 1541 wait(0.1);
sinrab 1:7bc0f280c259 1542 }
sinrab 1:7bc0f280c259 1543 if (nline==5) {
sinrab 1:7bc0f280c259 1544 mon++;
sinrab 1:7bc0f280c259 1545 wait(0.1);
sinrab 1:7bc0f280c259 1546 }
sinrab 1:7bc0f280c259 1547 if (nline==6) {
sinrab 1:7bc0f280c259 1548 year++;
sinrab 1:7bc0f280c259 1549 wait(0.1);
sinrab 1:7bc0f280c259 1550 }
sinrab 1:7bc0f280c259 1551 }
sinrab 1:7bc0f280c259 1552 if (buttonDown==0) {
sinrab 1:7bc0f280c259 1553 if (nline==1) {
sinrab 1:7bc0f280c259 1554 hour--;
sinrab 1:7bc0f280c259 1555 wait(0.1);
sinrab 1:7bc0f280c259 1556 }
sinrab 1:7bc0f280c259 1557 if (nline==2) {
sinrab 1:7bc0f280c259 1558 min--;
sinrab 1:7bc0f280c259 1559 wait(0.1);
sinrab 1:7bc0f280c259 1560 }
sinrab 1:7bc0f280c259 1561 if (nline==3) {
sinrab 1:7bc0f280c259 1562 sec--;
sinrab 1:7bc0f280c259 1563 wait(0.1);
sinrab 1:7bc0f280c259 1564 }
sinrab 1:7bc0f280c259 1565 if (nline==4) {
sinrab 1:7bc0f280c259 1566 day--;
sinrab 1:7bc0f280c259 1567 wait(0.1);
sinrab 1:7bc0f280c259 1568 }
sinrab 1:7bc0f280c259 1569 if (nline==5) {
sinrab 1:7bc0f280c259 1570 mon--;
sinrab 1:7bc0f280c259 1571 wait(0.1);
sinrab 1:7bc0f280c259 1572 }
sinrab 1:7bc0f280c259 1573 if (nline==6) {
sinrab 1:7bc0f280c259 1574 year--;
sinrab 1:7bc0f280c259 1575 wait(0.1);
sinrab 1:7bc0f280c259 1576 }
sinrab 1:7bc0f280c259 1577 }
sinrab 1:7bc0f280c259 1578
sinrab 1:7bc0f280c259 1579 one=1;
sinrab 1:7bc0f280c259 1580 }
sinrab 0:ed1ba99f7b14 1581 }
sinrab 0:ed1ba99f7b14 1582 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1583 if (Screen==4 & one==0) { //экран меню Калибровка
sinrab 0:ed1ba99f7b14 1584 if (buttonEnter==0) { // Enter set!
sinrab 4:776f59129c24 1585
sinrab 4:776f59129c24 1586 if (kline==1) a0a = in0;
sinrab 4:776f59129c24 1587 if (kline==2) a0k = 1.900f/(in0-a0a); //a0k = umax/(in0-a0a);
sinrab 4:776f59129c24 1588
sinrab 4:776f59129c24 1589 if (kline==3) a1a = in1 - 0.000100f; // a1a = avgAin1() - 0.00004
sinrab 4:776f59129c24 1590 if (kline==4) a1k = 0.2f/(in1 - a1a); //a1k = 1000/(avgAin1() - a1a) при 1амперах
sinrab 4:776f59129c24 1591
sinrab 4:776f59129c24 1592 if (kline==5) a2a = in2; // U high v
sinrab 5:0b3c71d7e475 1593 if (kline==6) a2k = 19.00f/(in2-a2a); // U high v
sinrab 5:0b3c71d7e475 1594
sinrab 5:0b3c71d7e475 1595 if (kline==10)
sinrab 5:0b3c71d7e475 1596 {
sinrab 5:0b3c71d7e475 1597 ledshort=1; // 1 раз моргнуло - начало записи
sinrab 5:0b3c71d7e475 1598 wait(0.02);
sinrab 5:0b3c71d7e475 1599 ledshort=0;
sinrab 5:0b3c71d7e475 1600 wait(0.05);
sinrab 5:0b3c71d7e475 1601 int s=1;
sinrab 5:0b3c71d7e475 1602 int s1=0;
sinrab 5:0b3c71d7e475 1603 eeprom.nbyte_write(0, (char*)&s, sizeof(s));
sinrab 5:0b3c71d7e475 1604 eeprom.nbyte_write(4, (char*)&s1, sizeof(s1));
sinrab 5:0b3c71d7e475 1605 ledshort=1;
sinrab 5:0b3c71d7e475 1606 wait(0.02);
sinrab 5:0b3c71d7e475 1607 ledshort=0;
sinrab 5:0b3c71d7e475 1608 }
sinrab 5:0b3c71d7e475 1609 if (kline==11)
sinrab 5:0b3c71d7e475 1610 {
sinrab 5:0b3c71d7e475 1611 ledshort=1; // 1 раз моргнуло - начало записи
sinrab 5:0b3c71d7e475 1612 wait(0.02);
sinrab 5:0b3c71d7e475 1613 ledshort=0;
sinrab 5:0b3c71d7e475 1614 wait(0.05);
sinrab 5:0b3c71d7e475 1615 int s=0;
sinrab 5:0b3c71d7e475 1616 int s1=1;
sinrab 5:0b3c71d7e475 1617 eeprom.nbyte_write(0, (char*)&s, sizeof(s));
sinrab 5:0b3c71d7e475 1618 eeprom.nbyte_write(4, (char*)&s1, sizeof(s1));
sinrab 5:0b3c71d7e475 1619 ledshort=1;
sinrab 5:0b3c71d7e475 1620 wait(0.02);
sinrab 5:0b3c71d7e475 1621 ledshort=0;
sinrab 5:0b3c71d7e475 1622 }
sinrab 4:776f59129c24 1623
sinrab 4:776f59129c24 1624 if (kline==13) { // load
sinrab 4:776f59129c24 1625
sinrab 4:776f59129c24 1626 a0a = 0.000679;
sinrab 4:776f59129c24 1627 a0k = 5.006402;
sinrab 4:776f59129c24 1628 a1a = 0.143353;
sinrab 4:776f59129c24 1629 a1k = 3.224676;
sinrab 4:776f59129c24 1630 a2a = 0.000015;
sinrab 4:776f59129c24 1631 a2k = 33.627953;
sinrab 4:776f59129c24 1632 }
sinrab 4:776f59129c24 1633 if (kline==14) { // save
sinrab 4:776f59129c24 1634 ledshort=1; // 1 раз моргнуло - начало записи
sinrab 4:776f59129c24 1635 wait(0.02);
sinrab 4:776f59129c24 1636 ledshort=0;
sinrab 4:776f59129c24 1637 wait(0.05);
sinrab 4:776f59129c24 1638 eeprom.nbyte_write(8, (char*)&a0a, sizeof(a0a)); // a0a float - 4 байта
sinrab 4:776f59129c24 1639 eeprom.nbyte_write(12, (char*)&a0k, sizeof(a0k)); // a0k float - 4 байта
sinrab 4:776f59129c24 1640 eeprom.nbyte_write(16, (char*)&a1a, sizeof(a1a)); // a1a float - 4 байта
sinrab 4:776f59129c24 1641 eeprom.nbyte_write(20, (char*)&a1k, sizeof(a1k)); // a1k float - 4 байта
sinrab 4:776f59129c24 1642 eeprom.nbyte_write(24, (char*)&a2a, sizeof(a2a)); // a2a float - 4 байта
sinrab 4:776f59129c24 1643 eeprom.nbyte_write(28, (char*)&a2k, sizeof(a2k)); // a2k float - 4 байта
sinrab 4:776f59129c24 1644 ledshort=1; // 2 раз моргнуло - записалось
sinrab 4:776f59129c24 1645 wait(0.02);
sinrab 4:776f59129c24 1646 ledshort=0;
sinrab 4:776f59129c24 1647 wait(0.1);
sinrab 4:776f59129c24 1648 }
sinrab 3:791cf9a867d1 1649 if (kline==15) Screen=5; //exit
sinrab 0:ed1ba99f7b14 1650 complit=0;
sinrab 0:ed1ba99f7b14 1651 }
sinrab 0:ed1ba99f7b14 1652
sinrab 0:ed1ba99f7b14 1653 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 1654 kline--; //-
sinrab 0:ed1ba99f7b14 1655 if (kline==0) kline=15;
sinrab 0:ed1ba99f7b14 1656 }
sinrab 0:ed1ba99f7b14 1657
sinrab 0:ed1ba99f7b14 1658 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 1659 kline++; //+
sinrab 0:ed1ba99f7b14 1660 if (kline==16) kline=1;
sinrab 0:ed1ba99f7b14 1661 }
sinrab 0:ed1ba99f7b14 1662 one=1;
sinrab 0:ed1ba99f7b14 1663 }
sinrab 0:ed1ba99f7b14 1664 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 1665 if (Screen==5 & one==0) { //экран 5 Настройки главная-------------------------------------------------------
sinrab 0:ed1ba99f7b14 1666 if (buttonEnter==0 & pmenu==0) { // Enter
sinrab 4:776f59129c24 1667
sinrab 0:ed1ba99f7b14 1668 if (mline==1) {
sinrab 1:7bc0f280c259 1669 Screen=3;
sinrab 0:ed1ba99f7b14 1670 complit=0;
sinrab 0:ed1ba99f7b14 1671 }
sinrab 4:776f59129c24 1672
sinrab 0:ed1ba99f7b14 1673 if (mline==2) {
sinrab 0:ed1ba99f7b14 1674 mline2=1;
sinrab 0:ed1ba99f7b14 1675 pmenu=1;
sinrab 0:ed1ba99f7b14 1676 one=1;
sinrab 0:ed1ba99f7b14 1677 wait(0.2);
sinrab 0:ed1ba99f7b14 1678 }
sinrab 4:776f59129c24 1679
sinrab 4:776f59129c24 1680 if (mline==3) { // sound beeper
sinrab 4:776f59129c24 1681 beeper=!beeper;
sinrab 4:776f59129c24 1682 ledshort=1;
sinrab 4:776f59129c24 1683 wait(0.02);
sinrab 4:776f59129c24 1684 ledshort=0;
sinrab 4:776f59129c24 1685 wait(0.05);
sinrab 4:776f59129c24 1686 eeprom.nbyte_write(44, (char*)&beeper, sizeof(beeper)); // beeper float - 4 байта
sinrab 4:776f59129c24 1687 ledshort=1;
sinrab 4:776f59129c24 1688 wait(0.02);
sinrab 4:776f59129c24 1689 ledshort=0;
sinrab 4:776f59129c24 1690 mline7=1;
sinrab 4:776f59129c24 1691 pmenu=1;
sinrab 4:776f59129c24 1692 one=1;
sinrab 4:776f59129c24 1693 wait(0.2);
sinrab 4:776f59129c24 1694 }
sinrab 4:776f59129c24 1695
sinrab 3:791cf9a867d1 1696 if (mline==4) { // вентилятор старт
sinrab 3:791cf9a867d1 1697 mline4=1;
sinrab 3:791cf9a867d1 1698 pmenu=1;
sinrab 3:791cf9a867d1 1699 one=1;
sinrab 3:791cf9a867d1 1700 wait(0.2);
sinrab 3:791cf9a867d1 1701 }
sinrab 4:776f59129c24 1702
sinrab 3:791cf9a867d1 1703 if (mline==5) { // вентилятор full
sinrab 3:791cf9a867d1 1704 mline5=1;
sinrab 3:791cf9a867d1 1705 pmenu=1;
sinrab 3:791cf9a867d1 1706 one=1;
sinrab 3:791cf9a867d1 1707 wait(0.2);
sinrab 3:791cf9a867d1 1708 }
sinrab 4:776f59129c24 1709
sinrab 3:791cf9a867d1 1710 if (mline==6) { // температура отключения нагрузки
sinrab 3:791cf9a867d1 1711 mline6=1;
sinrab 3:791cf9a867d1 1712 pmenu=1;
sinrab 3:791cf9a867d1 1713 one=1;
sinrab 3:791cf9a867d1 1714 wait(0.2);
sinrab 3:791cf9a867d1 1715 }
sinrab 4:776f59129c24 1716
sinrab 3:791cf9a867d1 1717 if (mline==7) { // R падение U вкл выкл
sinrab 3:791cf9a867d1 1718 rdown_on=!rdown_on;
sinrab 4:776f59129c24 1719 ledshort=1;
sinrab 4:776f59129c24 1720 wait(0.02);
sinrab 4:776f59129c24 1721 ledshort=0;
sinrab 4:776f59129c24 1722 wait(0.05);
sinrab 4:776f59129c24 1723 eeprom.nbyte_write(48, (char*)&rdown_on, sizeof(rdown_on)); // rdown_on float - 4 байта
sinrab 4:776f59129c24 1724 ledshort=1;
sinrab 4:776f59129c24 1725 wait(0.02);
sinrab 4:776f59129c24 1726 ledshort=0;
sinrab 3:791cf9a867d1 1727 mline7=1;
sinrab 3:791cf9a867d1 1728 pmenu=1;
sinrab 3:791cf9a867d1 1729 one=1;
sinrab 3:791cf9a867d1 1730 wait(0.2);
sinrab 3:791cf9a867d1 1731 }
sinrab 4:776f59129c24 1732
sinrab 3:791cf9a867d1 1733 if (mline==8) { // сопротивление R номинал
sinrab 3:791cf9a867d1 1734 mline8=1;
sinrab 3:791cf9a867d1 1735 pmenu=1;
sinrab 3:791cf9a867d1 1736 one=1;
sinrab 3:791cf9a867d1 1737 wait(0.2);
sinrab 3:791cf9a867d1 1738 }
sinrab 4:776f59129c24 1739
sinrab 0:ed1ba99f7b14 1740 if (mline==9) { // меню калибровки
sinrab 0:ed1ba99f7b14 1741 Screen=4;
sinrab 0:ed1ba99f7b14 1742 complit=0;
sinrab 0:ed1ba99f7b14 1743 }
sinrab 4:776f59129c24 1744
sinrab 0:ed1ba99f7b14 1745 if (mline==10) { // меню analog in, noise
sinrab 0:ed1ba99f7b14 1746 Screen=2;
sinrab 0:ed1ba99f7b14 1747 complit=0;
sinrab 0:ed1ba99f7b14 1748 }
sinrab 4:776f59129c24 1749
sinrab 3:791cf9a867d1 1750 if (mline==11) { // U максимальная
sinrab 3:791cf9a867d1 1751 mline11=1;
sinrab 3:791cf9a867d1 1752 pmenu=1;
sinrab 3:791cf9a867d1 1753 one=1;
sinrab 3:791cf9a867d1 1754 wait(0.2);
sinrab 3:791cf9a867d1 1755 }
sinrab 4:776f59129c24 1756
sinrab 4:776f59129c24 1757 if (mline==12) { // I max
sinrab 4:776f59129c24 1758 mline12=1;
sinrab 4:776f59129c24 1759 pmenu=1;
sinrab 4:776f59129c24 1760 one=1;
sinrab 4:776f59129c24 1761 wait(0.2);
sinrab 4:776f59129c24 1762 }
sinrab 4:776f59129c24 1763
sinrab 4:776f59129c24 1764 if (mline==13) { // screen saver
sinrab 4:776f59129c24 1765 mline13=1;
sinrab 4:776f59129c24 1766 pmenu=1;
sinrab 4:776f59129c24 1767 one=1;
sinrab 4:776f59129c24 1768 wait(0.2);
sinrab 4:776f59129c24 1769 }
sinrab 4:776f59129c24 1770
sinrab 4:776f59129c24 1771 if (mline==14) { // загрузить в память настройки по умолчанию и нужно перезагрузиться
sinrab 4:776f59129c24 1772 savedefaulttoflash();
sinrab 4:776f59129c24 1773 mline14=1;
sinrab 4:776f59129c24 1774 pmenu=1;
sinrab 4:776f59129c24 1775 one=1;
sinrab 4:776f59129c24 1776 wait(0.2);
sinrab 4:776f59129c24 1777 }
sinrab 4:776f59129c24 1778
sinrab 0:ed1ba99f7b14 1779 if (mline==15) {
sinrab 0:ed1ba99f7b14 1780 Screen=1;
sinrab 0:ed1ba99f7b14 1781 complit=0;
sinrab 0:ed1ba99f7b14 1782 }
sinrab 0:ed1ba99f7b14 1783 }
sinrab 0:ed1ba99f7b14 1784
sinrab 0:ed1ba99f7b14 1785 if (buttonUp==0 & pmenu==0) { // Up
sinrab 0:ed1ba99f7b14 1786 mline--; //-
sinrab 0:ed1ba99f7b14 1787 if (mline==0) mline=15;
sinrab 0:ed1ba99f7b14 1788 }
sinrab 0:ed1ba99f7b14 1789
sinrab 0:ed1ba99f7b14 1790 if (buttonDown==0 & pmenu==0) { // Down
sinrab 0:ed1ba99f7b14 1791 mline++; //+
sinrab 0:ed1ba99f7b14 1792 if (mline==16) mline=1;
sinrab 0:ed1ba99f7b14 1793 }
sinrab 0:ed1ba99f7b14 1794
sinrab 0:ed1ba99f7b14 1795 //---------подменю яркость подсветки
sinrab 0:ed1ba99f7b14 1796 if (mline2==1) {
sinrab 0:ed1ba99f7b14 1797 int i=0;
sinrab 4:776f59129c24 1798 if (buttonUp==0 && brightness<1) {
sinrab 4:776f59129c24 1799 if(brightness >= 0.09f && i==0) {
sinrab 4:776f59129c24 1800 brightness+=0.1f;
sinrab 4:776f59129c24 1801 pinbrightness=brightness;
sinrab 0:ed1ba99f7b14 1802 i=1;
sinrab 0:ed1ba99f7b14 1803 }
sinrab 4:776f59129c24 1804 if(brightness < 0.09f && i==0) {
sinrab 4:776f59129c24 1805 brightness+=0.01f;
sinrab 4:776f59129c24 1806 pinbrightness=brightness;
sinrab 0:ed1ba99f7b14 1807 i=1;
sinrab 0:ed1ba99f7b14 1808 }
sinrab 0:ed1ba99f7b14 1809
sinrab 0:ed1ba99f7b14 1810 }
sinrab 0:ed1ba99f7b14 1811
sinrab 4:776f59129c24 1812 if (buttonDown==0 && brightness>0.01f) {
sinrab 4:776f59129c24 1813 if(brightness <= 0.1f && i==0) {
sinrab 4:776f59129c24 1814 brightness-=0.01f;
sinrab 4:776f59129c24 1815 pinbrightness=brightness;
sinrab 0:ed1ba99f7b14 1816 i=1;
sinrab 0:ed1ba99f7b14 1817 }
sinrab 4:776f59129c24 1818 if(brightness > 0.1f && i==0) {
sinrab 4:776f59129c24 1819 brightness-=0.1f;
sinrab 4:776f59129c24 1820 pinbrightness=brightness;
sinrab 0:ed1ba99f7b14 1821 i=1;
sinrab 0:ed1ba99f7b14 1822 }
sinrab 0:ed1ba99f7b14 1823 }
sinrab 0:ed1ba99f7b14 1824
sinrab 0:ed1ba99f7b14 1825 if (buttonEnter==0) {
sinrab 4:776f59129c24 1826 ledshort=1;
sinrab 4:776f59129c24 1827 wait(0.02);
sinrab 4:776f59129c24 1828 ledshort=0;
sinrab 4:776f59129c24 1829 wait(0.05);
sinrab 4:776f59129c24 1830 eeprom.nbyte_write(40, (char*)&brightness, sizeof(brightness)); // brightness float - 4 байта
sinrab 4:776f59129c24 1831 ledshort=1;
sinrab 4:776f59129c24 1832 wait(0.02);
sinrab 4:776f59129c24 1833 ledshort=0;
sinrab 0:ed1ba99f7b14 1834 mline2=0;
sinrab 0:ed1ba99f7b14 1835 pmenu=0;
sinrab 0:ed1ba99f7b14 1836 }
sinrab 0:ed1ba99f7b14 1837 }
sinrab 4:776f59129c24 1838 //------------------------------------ tempstart
sinrab 3:791cf9a867d1 1839 if (mline4==1) {
sinrab 4:776f59129c24 1840 if (buttonUp==0) {
sinrab 3:791cf9a867d1 1841 tempstart++;
sinrab 3:791cf9a867d1 1842 wait(0.1);
sinrab 3:791cf9a867d1 1843 }
sinrab 4:776f59129c24 1844 if (buttonDown==0) {
sinrab 3:791cf9a867d1 1845 tempstart--;
sinrab 3:791cf9a867d1 1846 wait(0.1);
sinrab 3:791cf9a867d1 1847 }
sinrab 3:791cf9a867d1 1848 if (buttonEnter==0) {
sinrab 4:776f59129c24 1849 ledshort=1;
sinrab 4:776f59129c24 1850 wait(0.02);
sinrab 4:776f59129c24 1851 ledshort=0;
sinrab 4:776f59129c24 1852 wait(0.05);
sinrab 4:776f59129c24 1853 eeprom.nbyte_write(56, (char*)&tempstart, sizeof(tempstart)); // tempstart float - 4 байта
sinrab 4:776f59129c24 1854 ledshort=1;
sinrab 4:776f59129c24 1855 wait(0.02);
sinrab 4:776f59129c24 1856 ledshort=0;
sinrab 3:791cf9a867d1 1857 mline4=0;
sinrab 3:791cf9a867d1 1858 pmenu=0;
sinrab 3:791cf9a867d1 1859 }
sinrab 3:791cf9a867d1 1860 }
sinrab 3:791cf9a867d1 1861 //------------------------------------ tempfull
sinrab 3:791cf9a867d1 1862 if (mline5==1) {
sinrab 4:776f59129c24 1863 if (buttonUp==0) {
sinrab 3:791cf9a867d1 1864 tempfull++;
sinrab 3:791cf9a867d1 1865 wait(0.1);
sinrab 3:791cf9a867d1 1866 }
sinrab 4:776f59129c24 1867 if (buttonDown==0) {
sinrab 3:791cf9a867d1 1868 tempfull--;
sinrab 3:791cf9a867d1 1869 wait(0.1);
sinrab 3:791cf9a867d1 1870 }
sinrab 3:791cf9a867d1 1871 if (buttonEnter==0) {
sinrab 4:776f59129c24 1872 ledshort=1;
sinrab 4:776f59129c24 1873 wait(0.02);
sinrab 4:776f59129c24 1874 ledshort=0;
sinrab 4:776f59129c24 1875 wait(0.05);
sinrab 4:776f59129c24 1876 eeprom.nbyte_write(60, (char*)&tempfull, sizeof(tempfull)); // tempfull float - 4 байта
sinrab 4:776f59129c24 1877 ledshort=1;
sinrab 4:776f59129c24 1878 wait(0.02);
sinrab 4:776f59129c24 1879 ledshort=0;
sinrab 3:791cf9a867d1 1880 mline5=0;
sinrab 3:791cf9a867d1 1881 pmenu=0;
sinrab 3:791cf9a867d1 1882 }
sinrab 3:791cf9a867d1 1883 }
sinrab 3:791cf9a867d1 1884 //------------------------------------ tempcutoff
sinrab 3:791cf9a867d1 1885 if (mline6==1) {
sinrab 4:776f59129c24 1886 if (buttonUp==0) {
sinrab 3:791cf9a867d1 1887 tempcutoff++;
sinrab 3:791cf9a867d1 1888 wait(0.1);
sinrab 3:791cf9a867d1 1889 }
sinrab 4:776f59129c24 1890 if (buttonDown==0) {
sinrab 3:791cf9a867d1 1891 tempcutoff--;
sinrab 3:791cf9a867d1 1892 wait(0.1);
sinrab 3:791cf9a867d1 1893 }
sinrab 3:791cf9a867d1 1894 if (buttonEnter==0) {
sinrab 4:776f59129c24 1895 ledshort=1;
sinrab 4:776f59129c24 1896 wait(0.02);
sinrab 4:776f59129c24 1897 ledshort=0;
sinrab 4:776f59129c24 1898 wait(0.05);
sinrab 4:776f59129c24 1899 eeprom.nbyte_write(64, (char*)&tempcutoff, sizeof(tempcutoff)); // tempcutoff float - 4 байта
sinrab 4:776f59129c24 1900 ledshort=1;
sinrab 4:776f59129c24 1901 wait(0.02);
sinrab 4:776f59129c24 1902 ledshort=0;
sinrab 3:791cf9a867d1 1903 mline6=0;
sinrab 3:791cf9a867d1 1904 pmenu=0;
sinrab 3:791cf9a867d1 1905 }
sinrab 3:791cf9a867d1 1906 }
sinrab 3:791cf9a867d1 1907 //------------------------------------ падение на R вкл выкл
sinrab 3:791cf9a867d1 1908 if (mline7==1 & one==0) {
sinrab 4:776f59129c24 1909 wait(0.1);
sinrab 4:776f59129c24 1910 mline7=0;
sinrab 4:776f59129c24 1911 pmenu=0;
sinrab 3:791cf9a867d1 1912 }
sinrab 3:791cf9a867d1 1913 //------------------------------------ сопротивление резистора
sinrab 3:791cf9a867d1 1914 if (mline8==1) {
sinrab 4:776f59129c24 1915 if (buttonUp==0) {
sinrab 3:791cf9a867d1 1916 rdown=rdown+0.001f;
sinrab 3:791cf9a867d1 1917 wait(0.1);
sinrab 3:791cf9a867d1 1918 }
sinrab 4:776f59129c24 1919 if (buttonDown==0) {
sinrab 3:791cf9a867d1 1920 rdown=rdown-0.001f;
sinrab 3:791cf9a867d1 1921 wait(0.1);
sinrab 3:791cf9a867d1 1922 }
sinrab 3:791cf9a867d1 1923 if (buttonEnter==0) {
sinrab 4:776f59129c24 1924 ledshort=1;
sinrab 4:776f59129c24 1925 wait(0.02);
sinrab 4:776f59129c24 1926 ledshort=0;
sinrab 4:776f59129c24 1927 wait(0.05);
sinrab 4:776f59129c24 1928 eeprom.nbyte_write(36, (char*)&rdown, sizeof(rdown)); // rdown float - 4 байта
sinrab 4:776f59129c24 1929 ledshort=1;
sinrab 4:776f59129c24 1930 wait(0.02);
sinrab 4:776f59129c24 1931 ledshort=0;
sinrab 3:791cf9a867d1 1932 mline8=0;
sinrab 3:791cf9a867d1 1933 pmenu=0;
sinrab 3:791cf9a867d1 1934 }
sinrab 3:791cf9a867d1 1935 }
sinrab 3:791cf9a867d1 1936 //------------------------------------ U max
sinrab 3:791cf9a867d1 1937 if (mline11==1) {
sinrab 4:776f59129c24 1938 if (buttonUp==0) {
sinrab 3:791cf9a867d1 1939 umax++;
sinrab 3:791cf9a867d1 1940 wait(0.1);
sinrab 3:791cf9a867d1 1941 }
sinrab 4:776f59129c24 1942 if (buttonDown==0) {
sinrab 3:791cf9a867d1 1943 umax--;
sinrab 3:791cf9a867d1 1944 wait(0.1);
sinrab 3:791cf9a867d1 1945 }
sinrab 3:791cf9a867d1 1946 if (buttonEnter==0) {
sinrab 4:776f59129c24 1947 ledshort=1;
sinrab 4:776f59129c24 1948 wait(0.02);
sinrab 4:776f59129c24 1949 ledshort=0;
sinrab 4:776f59129c24 1950 wait(0.05);
sinrab 4:776f59129c24 1951 eeprom.nbyte_write(52, (char*)&umax, sizeof(umax)); // umax float - 4 байта
sinrab 4:776f59129c24 1952 ledshort=1;
sinrab 4:776f59129c24 1953 wait(0.02);
sinrab 4:776f59129c24 1954 ledshort=0;
sinrab 3:791cf9a867d1 1955 mline11=0;
sinrab 3:791cf9a867d1 1956 pmenu=0;
sinrab 3:791cf9a867d1 1957 }
sinrab 3:791cf9a867d1 1958 }
sinrab 4:776f59129c24 1959 //------------------------------------ I max
sinrab 4:776f59129c24 1960 if (mline12==1) {
sinrab 4:776f59129c24 1961 if (buttonUp==0) {
sinrab 4:776f59129c24 1962 imax=imax+0.1f;
sinrab 4:776f59129c24 1963 wait(0.05);
sinrab 4:776f59129c24 1964 }
sinrab 4:776f59129c24 1965 if (buttonDown==0) {
sinrab 4:776f59129c24 1966 imax=imax-0.1f;
sinrab 4:776f59129c24 1967 wait(0.05);
sinrab 4:776f59129c24 1968 }
sinrab 4:776f59129c24 1969 if (buttonEnter==0) {
sinrab 4:776f59129c24 1970 ledshort=1;
sinrab 4:776f59129c24 1971 wait(0.02);
sinrab 4:776f59129c24 1972 ledshort=0;
sinrab 4:776f59129c24 1973 wait(0.05);
sinrab 4:776f59129c24 1974 eeprom.nbyte_write(32, (char*)&imax, sizeof(imax)); // imax float - 4 байта
sinrab 4:776f59129c24 1975 ledshort=1;
sinrab 4:776f59129c24 1976 wait(0.02);
sinrab 4:776f59129c24 1977 ledshort=0;
sinrab 4:776f59129c24 1978 mline12=0;
sinrab 4:776f59129c24 1979 pmenu=0;
sinrab 4:776f59129c24 1980 }
sinrab 4:776f59129c24 1981 }
sinrab 4:776f59129c24 1982 //------------------------------------ screensaver
sinrab 4:776f59129c24 1983 if (mline13==1) {
sinrab 4:776f59129c24 1984 if (buttonUp==0) {
sinrab 4:776f59129c24 1985 screensaver++;
sinrab 4:776f59129c24 1986 if (screensaver==4) screensaver=0;
sinrab 4:776f59129c24 1987 wait(0.1);
sinrab 4:776f59129c24 1988 }
sinrab 4:776f59129c24 1989 if (buttonDown==0) {
sinrab 4:776f59129c24 1990 screensaver--;
sinrab 4:776f59129c24 1991 if (screensaver==-1) screensaver=3;
sinrab 4:776f59129c24 1992 wait(0.1);
sinrab 4:776f59129c24 1993 }
sinrab 4:776f59129c24 1994 if (buttonEnter==0) {
sinrab 4:776f59129c24 1995 ledshort=1;
sinrab 4:776f59129c24 1996 wait(0.02);
sinrab 4:776f59129c24 1997 ledshort=0;
sinrab 4:776f59129c24 1998 wait(0.05);
sinrab 4:776f59129c24 1999 eeprom.nbyte_write(68, (char*)&screensaver, sizeof(screensaver)); // screensaver float - 1 байт
sinrab 4:776f59129c24 2000 ledshort=1;
sinrab 4:776f59129c24 2001 wait(0.02);
sinrab 4:776f59129c24 2002 ledshort=0;
sinrab 4:776f59129c24 2003 mline13=0;
sinrab 4:776f59129c24 2004 pmenu=0;
sinrab 4:776f59129c24 2005 }
sinrab 4:776f59129c24 2006 }
sinrab 4:776f59129c24 2007 //------------------------------------
sinrab 4:776f59129c24 2008 if (mline14==1 & one==0) {
sinrab 4:776f59129c24 2009 wait(0.1);
sinrab 4:776f59129c24 2010 mline14=0;
sinrab 4:776f59129c24 2011 pmenu=0;
sinrab 4:776f59129c24 2012 }
sinrab 0:ed1ba99f7b14 2013 //------------------------------------
sinrab 0:ed1ba99f7b14 2014 one=1;
sinrab 3:791cf9a867d1 2015 //------------------------------------
sinrab 0:ed1ba99f7b14 2016
sinrab 0:ed1ba99f7b14 2017 }
sinrab 0:ed1ba99f7b14 2018 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 2019 if (Screen==6 & one==0) { //экран 6
sinrab 0:ed1ba99f7b14 2020 if (buttonEnter==0) { // Enter
sinrab 4:776f59129c24 2021 Screen=1;
sinrab 4:776f59129c24 2022 complit=0;
sinrab 0:ed1ba99f7b14 2023 }
sinrab 0:ed1ba99f7b14 2024
sinrab 0:ed1ba99f7b14 2025 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 2026 }
sinrab 0:ed1ba99f7b14 2027
sinrab 0:ed1ba99f7b14 2028 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 2029 }
sinrab 0:ed1ba99f7b14 2030 one=1;
sinrab 0:ed1ba99f7b14 2031
sinrab 0:ed1ba99f7b14 2032 }
sinrab 0:ed1ba99f7b14 2033 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 2034 if (Screen==7 & one==0) { //экран 7
sinrab 0:ed1ba99f7b14 2035 if (buttonEnter==0) { // Enter
sinrab 5:0b3c71d7e475 2036 Screen=2;
sinrab 5:0b3c71d7e475 2037 complit=0;
sinrab 0:ed1ba99f7b14 2038 }
sinrab 0:ed1ba99f7b14 2039
sinrab 0:ed1ba99f7b14 2040 if (buttonUp==0) { // Up
sinrab 5:0b3c71d7e475 2041 Screen=2;
sinrab 5:0b3c71d7e475 2042 complit=0;
sinrab 0:ed1ba99f7b14 2043 }
sinrab 0:ed1ba99f7b14 2044
sinrab 0:ed1ba99f7b14 2045 if (buttonDown==0) { // Down
sinrab 5:0b3c71d7e475 2046 Screen=2;
sinrab 4:776f59129c24 2047 complit=0;
sinrab 0:ed1ba99f7b14 2048 }
sinrab 0:ed1ba99f7b14 2049 one=1;
sinrab 0:ed1ba99f7b14 2050
sinrab 0:ed1ba99f7b14 2051 }
sinrab 0:ed1ba99f7b14 2052 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 2053 if (Screen==8 & one==0) { //экран 8
sinrab 0:ed1ba99f7b14 2054 if (buttonEnter==0) { // Enter
sinrab 0:ed1ba99f7b14 2055 }
sinrab 0:ed1ba99f7b14 2056
sinrab 0:ed1ba99f7b14 2057 if (buttonUp==0) { // Up
sinrab 0:ed1ba99f7b14 2058 }
sinrab 0:ed1ba99f7b14 2059
sinrab 0:ed1ba99f7b14 2060 if (buttonDown==0) { // Down
sinrab 0:ed1ba99f7b14 2061 }
sinrab 0:ed1ba99f7b14 2062 one=1;
sinrab 0:ed1ba99f7b14 2063
sinrab 0:ed1ba99f7b14 2064 }
sinrab 0:ed1ba99f7b14 2065 //------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 2066 }
sinrab 0:ed1ba99f7b14 2067 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 2068 void grid(void)
sinrab 0:ed1ba99f7b14 2069 {
sinrab 0:ed1ba99f7b14 2070 TFT.cls();
sinrab 0:ed1ba99f7b14 2071 for (int i=0; i<240; i=i+5) {
sinrab 0:ed1ba99f7b14 2072 TFT.line(0,i,320,i, White);
sinrab 0:ed1ba99f7b14 2073 }
sinrab 0:ed1ba99f7b14 2074 for (int i=2; i<240; i=i+5) {
sinrab 0:ed1ba99f7b14 2075 TFT.line(4,i,320,i, White);
sinrab 0:ed1ba99f7b14 2076 }
sinrab 0:ed1ba99f7b14 2077 for (int i=3; i<240; i=i+5) {
sinrab 0:ed1ba99f7b14 2078 TFT.line(4,i,320,i, White);
sinrab 0:ed1ba99f7b14 2079 }
sinrab 0:ed1ba99f7b14 2080
sinrab 0:ed1ba99f7b14 2081 }
sinrab 1:7bc0f280c259 2082 //------------------------------------------------------------------------------------------------------------
sinrab 0:ed1ba99f7b14 2083 void timeConvert(void) //показывает час с минуты с секундами начинают идти с часа и одной минуты
sinrab 0:ed1ba99f7b14 2084 {
sinrab 0:ed1ba99f7b14 2085 if (powerMosfet==1) treal = time(NULL);
sinrab 0:ed1ba99f7b14 2086 t = treal - tstart;
sinrab 0:ed1ba99f7b14 2087 h= t/3600;
sinrab 0:ed1ba99f7b14 2088 m= (t-h*3600)/60;
sinrab 0:ed1ba99f7b14 2089 s= (t-h*3600)-m*60;
sinrab 0:ed1ba99f7b14 2090 if (t == 359999) tstart=treal;
sinrab 1:7bc0f280c259 2091 }
sinrab 1:7bc0f280c259 2092 //------------------------------------------------------------------------------------------------------------
sinrab 1:7bc0f280c259 2093 void SetDateTime (void)
sinrab 1:7bc0f280c259 2094 {
sinrab 1:7bc0f280c259 2095 struct tm Clock;
sinrab 1:7bc0f280c259 2096 Clock.tm_year = year - 1900;
sinrab 1:7bc0f280c259 2097 Clock.tm_mon = mon;
sinrab 1:7bc0f280c259 2098 Clock.tm_mday = day;
sinrab 1:7bc0f280c259 2099 Clock.tm_hour = hour;
sinrab 1:7bc0f280c259 2100 Clock.tm_min = min;
sinrab 1:7bc0f280c259 2101 Clock.tm_sec = sec;
sinrab 1:7bc0f280c259 2102 time_t epoch = mktime(&Clock);
sinrab 1:7bc0f280c259 2103 set_time(epoch);
sinrab 1:7bc0f280c259 2104 }
sinrab 4:776f59129c24 2105 //------------------------------------------------------------------------------------------------------------*/
sinrab 4:776f59129c24 2106 void powerButton(void) // при нажатии кнопки питания
sinrab 4:776f59129c24 2107 {
sinrab 4:776f59129c24 2108 if (onepower==0) {
sinrab 4:776f59129c24 2109 timerforpoweriddle.attach(&keypoweriddle, 0.5);
sinrab 1:7bc0f280c259 2110
sinrab 4:776f59129c24 2111 if (saveractive==0) {
sinrab 4:776f59129c24 2112 powerMosfet=!powerMosfet;
sinrab 4:776f59129c24 2113 iddletimesaver.detach();
sinrab 4:776f59129c24 2114 onesaver=0;
sinrab 4:776f59129c24 2115 saveractive=0;
sinrab 4:776f59129c24 2116 } else {
sinrab 4:776f59129c24 2117 iddletimesaver.detach();
sinrab 4:776f59129c24 2118 onesaver=0;
sinrab 4:776f59129c24 2119 saveractive=0;
sinrab 4:776f59129c24 2120 }
sinrab 1:7bc0f280c259 2121
sinrab 4:776f59129c24 2122 if (beeper==1) {
sinrab 4:776f59129c24 2123 buzzer.beep(1600,0.05);
sinrab 4:776f59129c24 2124 }
sinrab 4:776f59129c24 2125 onepower=1;
sinrab 4:776f59129c24 2126 pb=0;
sinrab 1:7bc0f280c259 2127
sinrab 4:776f59129c24 2128 }
sinrab 4:776f59129c24 2129 if (powerMosfet==1) {
sinrab 4:776f59129c24 2130 tstart = treal = time(NULL);
sinrab 4:776f59129c24 2131 h=m=s=0;
sinrab 7:8410439dee73 2132 mah = 0;
sinrab 7:8410439dee73 2133 wh = 0;
sinrab 4:776f59129c24 2134 }
sinrab 4:776f59129c24 2135 }
sinrab 4:776f59129c24 2136 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 2137 void fans(void)
sinrab 4:776f59129c24 2138 {
sinrab 4:776f59129c24 2139 if (temperature < (tempstart-2)) {
sinrab 4:776f59129c24 2140 fst=0;
sinrab 4:776f59129c24 2141 fst2=0;
sinrab 4:776f59129c24 2142 fan = 0.0f;
sinrab 5:0b3c71d7e475 2143 //fan2 = 0.0f;
sinrab 4:776f59129c24 2144 }
sinrab 1:7bc0f280c259 2145
sinrab 4:776f59129c24 2146 if (temperature >= tempstart && fst == 0) {
sinrab 4:776f59129c24 2147 fan = 1.0f;
sinrab 5:0b3c71d7e475 2148 //fan2 = 1.0f;
sinrab 4:776f59129c24 2149 timerforfanstart.attach(&fanstart, 2.0);
sinrab 4:776f59129c24 2150 fst=1;
sinrab 4:776f59129c24 2151 }
sinrab 1:7bc0f280c259 2152
sinrab 4:776f59129c24 2153 if (fst2==1) {
sinrab 4:776f59129c24 2154 fanspeed = map (temperature, tempstart, tempfull, 0.4, 1);
sinrab 4:776f59129c24 2155 fan = fanspeed;
sinrab 5:0b3c71d7e475 2156 //fanspeed2 = map (temperature, tempstart, tempfull, 0.4, 1);
sinrab 5:0b3c71d7e475 2157 //fan2 = fanspeed2;
sinrab 4:776f59129c24 2158 }
sinrab 1:7bc0f280c259 2159
sinrab 4:776f59129c24 2160 if (temperature >= tempcutoff) {
sinrab 4:776f59129c24 2161 powerMosfet=0;
sinrab 4:776f59129c24 2162 pb=0;
sinrab 4:776f59129c24 2163 }
sinrab 1:7bc0f280c259 2164
sinrab 4:776f59129c24 2165 }
sinrab 4:776f59129c24 2166 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 2167 void fanstart(void)
sinrab 4:776f59129c24 2168 {
sinrab 4:776f59129c24 2169 fst2=1;
sinrab 4:776f59129c24 2170 }
sinrab 4:776f59129c24 2171 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 2172 void keypoweriddle(void)
sinrab 4:776f59129c24 2173 {
sinrab 4:776f59129c24 2174 onepower=0;
sinrab 4:776f59129c24 2175 }
sinrab 4:776f59129c24 2176 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 2177 void Protect(void)
sinrab 4:776f59129c24 2178 {
sinrab 4:776f59129c24 2179 // powerProtect==0 pp==0 защита от кз
sinrab 4:776f59129c24 2180 // cs==0 csp==0 прорисовка короткого замыкания
sinrab 4:776f59129c24 2181 if (U5<0.9f && cc==0) {
sinrab 4:776f59129c24 2182 shortline=1;
sinrab 4:776f59129c24 2183 } else {
sinrab 4:776f59129c24 2184 shortline=0;
sinrab 4:776f59129c24 2185 }
sinrab 4:776f59129c24 2186 if (shm==!shortline) {
sinrab 4:776f59129c24 2187 shl=0;
sinrab 4:776f59129c24 2188 }
sinrab 1:7bc0f280c259 2189
sinrab 4:776f59129c24 2190 if (shortline==1 && shl==0) {
sinrab 4:776f59129c24 2191 cs=1;
sinrab 4:776f59129c24 2192 csp=0;
sinrab 4:776f59129c24 2193 shl=1;
sinrab 4:776f59129c24 2194 shm=shortline;
sinrab 4:776f59129c24 2195 ledshort=1;
sinrab 4:776f59129c24 2196 }
sinrab 1:7bc0f280c259 2197
sinrab 4:776f59129c24 2198 if (shortline==0 && shl==0) {
sinrab 4:776f59129c24 2199 cs=0;
sinrab 4:776f59129c24 2200 csp=0;
sinrab 4:776f59129c24 2201 shl=1;
sinrab 4:776f59129c24 2202 shm=shortline;
sinrab 4:776f59129c24 2203 ledshort=0;
sinrab 4:776f59129c24 2204 }
sinrab 1:7bc0f280c259 2205
sinrab 4:776f59129c24 2206 if (powerProtect==1) {
sinrab 4:776f59129c24 2207 if (U5<0.9f && cc==0) {
sinrab 4:776f59129c24 2208 powerMosfet=0;
sinrab 4:776f59129c24 2209 pb=0;
sinrab 4:776f59129c24 2210 if (beeper==1) {
sinrab 4:776f59129c24 2211 buzzer.beep(480,0.3);
sinrab 4:776f59129c24 2212 }
sinrab 4:776f59129c24 2213 }
sinrab 4:776f59129c24 2214 }
sinrab 4:776f59129c24 2215 }
sinrab 4:776f59129c24 2216 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 2217 void ScreenSaver(void)
sinrab 4:776f59129c24 2218 {
sinrab 4:776f59129c24 2219 if (screensaver != 0) {
sinrab 4:776f59129c24 2220 if (buttonEnter==0) {
sinrab 4:776f59129c24 2221 iddletimesaver.detach();
sinrab 4:776f59129c24 2222 onesaver=0;
sinrab 4:776f59129c24 2223 saveractive=0;
sinrab 4:776f59129c24 2224 }
sinrab 4:776f59129c24 2225 if (buttonDown==0) {
sinrab 4:776f59129c24 2226 iddletimesaver.detach();
sinrab 4:776f59129c24 2227 onesaver=0;
sinrab 4:776f59129c24 2228 saveractive=0;
sinrab 4:776f59129c24 2229 }
sinrab 4:776f59129c24 2230 if (buttonUp==0) {
sinrab 4:776f59129c24 2231 iddletimesaver.detach();
sinrab 4:776f59129c24 2232 onesaver=0;
sinrab 4:776f59129c24 2233 saveractive=0;
sinrab 4:776f59129c24 2234 }
sinrab 4:776f59129c24 2235 }
sinrab 4:776f59129c24 2236 if (Screen==8 && saveractive==0) {
sinrab 4:776f59129c24 2237 Screen=1;
sinrab 4:776f59129c24 2238 complit=0;
sinrab 4:776f59129c24 2239 }
sinrab 4:776f59129c24 2240 if (Screen == 1 && onesaver==0) {
sinrab 4:776f59129c24 2241 if (powerMosfet == 0 && screensaver != 0) {
sinrab 4:776f59129c24 2242 iddletimesaver.attach(&screensaverstart, 10.0);
sinrab 4:776f59129c24 2243 onesaver=1;
sinrab 4:776f59129c24 2244 }
sinrab 4:776f59129c24 2245 }
sinrab 4:776f59129c24 2246 }
sinrab 4:776f59129c24 2247 //------------------------------------------------------------------------------------------------------------
sinrab 4:776f59129c24 2248 void screensaverstart(void)
sinrab 4:776f59129c24 2249 {
sinrab 4:776f59129c24 2250 saveractive=1;
sinrab 4:776f59129c24 2251 Screen=8;
sinrab 4:776f59129c24 2252 complit=0;
sinrab 4:776f59129c24 2253 }
sinrab 7:8410439dee73 2254 //------------------------------------------------------------------------------------------------------------
sinrab 7:8410439dee73 2255 void Pcap(void)
sinrab 7:8410439dee73 2256 {
sinrab 7:8410439dee73 2257 double ttt = U5 * Ireal / 3600;
sinrab 7:8410439dee73 2258 wh = wh + (ttt / 1000); // ватт часы
sinrab 7:8410439dee73 2259 mah = mah + (ttt / 3.7); // а тут уже миллиампер часы
sinrab 7:8410439dee73 2260 Pcapbool = !Pcapbool;
sinrab 7:8410439dee73 2261 }
sinrab 7:8410439dee73 2262 //------------------------------------------------------------------------------------------------------------
sinrab 9:84a59e981307 2263 void flip_temperature() {
sinrab 9:84a59e981307 2264 float flt = ds1820.read();
sinrab 9:84a59e981307 2265 temperature = (int)flt;
sinrab 9:84a59e981307 2266 ds1820.startConversion();
sinrab 9:84a59e981307 2267 }
sinrab 9:84a59e981307 2268 //---------------------------------------------------------------------------------------------------------
sinrab 7:8410439dee73 2269
sinrab 7:8410439dee73 2270
sinrab 7:8410439dee73 2271
sinrab 7:8410439dee73 2272