Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
src/main.cpp@0:aa53c09fba30, 2021-09-20 (annotated)
- Committer:
- grisha_b13
- Date:
- Mon Sep 20 13:06:41 2021 +0000
- Revision:
- 0:aa53c09fba30
- Child:
- 1:b05f79b901ac
Program rele with tft display (based on rasp pico).
Who changed what in which revision?
| User | Revision | Line number | New contents of line |
|---|---|---|---|
| grisha_b13 | 0:aa53c09fba30 | 1 | |
| grisha_b13 | 0:aa53c09fba30 | 2 | /************** Program rele *******************************/ |
| grisha_b13 | 0:aa53c09fba30 | 3 | |
| grisha_b13 | 0:aa53c09fba30 | 4 | #include <mbed.h> |
| grisha_b13 | 0:aa53c09fba30 | 5 | #include "rtos.h" |
| grisha_b13 | 0:aa53c09fba30 | 6 | |
| grisha_b13 | 0:aa53c09fba30 | 7 | #include "task.h" |
| grisha_b13 | 0:aa53c09fba30 | 8 | #include "ext_vars.h" |
| grisha_b13 | 0:aa53c09fba30 | 9 | |
| grisha_b13 | 0:aa53c09fba30 | 10 | #define UART_BAUD 9600 // скорость |
| grisha_b13 | 0:aa53c09fba30 | 11 | #define MAX_LEN 30 // макс. длинна строки usb |
| grisha_b13 | 0:aa53c09fba30 | 12 | |
| grisha_b13 | 0:aa53c09fba30 | 13 | //--------------- input / output --------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 14 | // outputs |
| grisha_b13 | 0:aa53c09fba30 | 15 | DigitalOut led(PC_13); // выход LED на плате |
| grisha_b13 | 0:aa53c09fba30 | 16 | |
| grisha_b13 | 0:aa53c09fba30 | 17 | DigitalOut y_01(PB_12); // out y01 |
| grisha_b13 | 0:aa53c09fba30 | 18 | DigitalOut y_02(PB_13); // out y02 |
| grisha_b13 | 0:aa53c09fba30 | 19 | DigitalOut y_03(PB_14); // out y03 |
| grisha_b13 | 0:aa53c09fba30 | 20 | DigitalOut y_04(PB_15); // out y04 |
| grisha_b13 | 0:aa53c09fba30 | 21 | DigitalOut y_05(PA_8); // out y05 |
| grisha_b13 | 0:aa53c09fba30 | 22 | DigitalOut y_06(PA_9); // out y06 |
| grisha_b13 | 0:aa53c09fba30 | 23 | |
| grisha_b13 | 0:aa53c09fba30 | 24 | // inputs |
| grisha_b13 | 0:aa53c09fba30 | 25 | DigitalIn x_01(PB_9); // inp x01 |
| grisha_b13 | 0:aa53c09fba30 | 26 | DigitalIn x_02(PB_8); // inp x02 |
| grisha_b13 | 0:aa53c09fba30 | 27 | DigitalIn x_03(PB_7); // inp x03 |
| grisha_b13 | 0:aa53c09fba30 | 28 | DigitalIn x_04(PB_6); // inp x04 |
| grisha_b13 | 0:aa53c09fba30 | 29 | DigitalIn x_05(PB_5); // inp x05 |
| grisha_b13 | 0:aa53c09fba30 | 30 | DigitalIn x_06(PB_4); // inp x06 |
| grisha_b13 | 0:aa53c09fba30 | 31 | DigitalIn x_07(PB_3); // inp x07 |
| grisha_b13 | 0:aa53c09fba30 | 32 | DigitalIn x_08(PA_15); // inp x08 |
| grisha_b13 | 0:aa53c09fba30 | 33 | |
| grisha_b13 | 0:aa53c09fba30 | 34 | //------- discr input ------------ |
| grisha_b13 | 0:aa53c09fba30 | 35 | DigitalIn swd_01(PA_0); // dip 1 |
| grisha_b13 | 0:aa53c09fba30 | 36 | DigitalIn swd_02(PA_1); // dip 2 |
| grisha_b13 | 0:aa53c09fba30 | 37 | DigitalIn swd_03(PA_2); // dip 3 |
| grisha_b13 | 0:aa53c09fba30 | 38 | DigitalIn swd_04(PA_3); // dip 4 |
| grisha_b13 | 0:aa53c09fba30 | 39 | |
| grisha_b13 | 0:aa53c09fba30 | 40 | //-------- Prototype functions ---------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 41 | void read_inputs(); // сохр.состояния входов в памяти |
| grisha_b13 | 0:aa53c09fba30 | 42 | void write_outs(); // формирование выходов |
| grisha_b13 | 0:aa53c09fba30 | 43 | void save_stat(); // сохранение сост. переменных |
| grisha_b13 | 0:aa53c09fba30 | 44 | void logic_tasks(); // логические задачи |
| grisha_b13 | 0:aa53c09fba30 | 45 | void timers(); // обработка таймеров |
| grisha_b13 | 0:aa53c09fba30 | 46 | int read_val(); // вычитывание значения из строки |
| grisha_b13 | 0:aa53c09fba30 | 47 | |
| grisha_b13 | 0:aa53c09fba30 | 48 | //-------- for SERIAL interface --------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 49 | Serial pc(PB_10, PB_11); // tx, rx |
| grisha_b13 | 0:aa53c09fba30 | 50 | int pc_i = 99; |
| grisha_b13 | 0:aa53c09fba30 | 51 | int pc_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 52 | char pc_buffer[100]; |
| grisha_b13 | 0:aa53c09fba30 | 53 | |
| grisha_b13 | 0:aa53c09fba30 | 54 | void pc_interrupt(void) { |
| grisha_b13 | 0:aa53c09fba30 | 55 | if (pc_i < 100) { |
| grisha_b13 | 0:aa53c09fba30 | 56 | pc_buffer[pc_i++] = pc.getc(); |
| grisha_b13 | 0:aa53c09fba30 | 57 | } else { |
| grisha_b13 | 0:aa53c09fba30 | 58 | pc_buffer[MAX_LEN] = pc.getc(); |
| grisha_b13 | 0:aa53c09fba30 | 59 | } |
| grisha_b13 | 0:aa53c09fba30 | 60 | } |
| grisha_b13 | 0:aa53c09fba30 | 61 | |
| grisha_b13 | 0:aa53c09fba30 | 62 | //----------- Local vars ----------------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 63 | int delay_time = 10; |
| grisha_b13 | 0:aa53c09fba30 | 64 | int t_sys = 0; |
| grisha_b13 | 0:aa53c09fba30 | 65 | |
| grisha_b13 | 0:aa53c09fba30 | 66 | // Переменные для проверки прихода значений из енергонезависимой памяти с rasp-pico |
| grisha_b13 | 0:aa53c09fba30 | 67 | int check_par1 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 68 | int check_par2 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 69 | int check_par3 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 70 | int check_par4 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 71 | int check_par5 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 72 | |
| grisha_b13 | 0:aa53c09fba30 | 73 | |
| grisha_b13 | 0:aa53c09fba30 | 74 | //----------- EXT VARS ------------------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 75 | // DC inputs |
| grisha_b13 | 0:aa53c09fba30 | 76 | int x01 = 0; int x01_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 77 | int x02 = 0; int x02_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 78 | int x03 = 0; int x03_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 79 | int x04 = 0; int x04_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 80 | int x05 = 0; int x05_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 81 | int x06 = 0; int x06_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 82 | int x07 = 0; int x07_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 83 | int x08 = 0; int x08_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 84 | // Dip inputs |
| grisha_b13 | 0:aa53c09fba30 | 85 | int swd01 = 0; int swd01_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 86 | int swd02 = 0; int swd02_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 87 | int swd03 = 0; int swd03_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 88 | int swd04 = 0; int swd04_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 89 | // Outputs |
| grisha_b13 | 0:aa53c09fba30 | 90 | int y01 = 0; int y01_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 91 | int y02 = 0; int y02_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 92 | int y03 = 0; int y03_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 93 | int y04 = 0; int y04_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 94 | int y05 = 0; int y05_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 95 | int y06 = 0; int y06_m = 0; |
| grisha_b13 | 0:aa53c09fba30 | 96 | // Timers |
| grisha_b13 | 0:aa53c09fba30 | 97 | int t01 = 0; int t101 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 98 | int t02 = 0; int t102 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 99 | int t03 = 0; int t103 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 100 | int t04 = 0; int t104 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 101 | int t05 = 0; int t105 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 102 | // Parametrs |
| grisha_b13 | 0:aa53c09fba30 | 103 | int pr001 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 104 | int pr002 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 105 | int pr003 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 106 | int pr004 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 107 | int pr005 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 108 | // Alarms |
| grisha_b13 | 0:aa53c09fba30 | 109 | int al000 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 110 | // VrXXX |
| grisha_b13 | 0:aa53c09fba30 | 111 | int vr000 = 0; |
| grisha_b13 | 0:aa53c09fba30 | 112 | int vr001 = 1; |
| grisha_b13 | 0:aa53c09fba30 | 113 | |
| grisha_b13 | 0:aa53c09fba30 | 114 | /**************************** main **********************************/ |
| grisha_b13 | 0:aa53c09fba30 | 115 | int main(void) |
| grisha_b13 | 0:aa53c09fba30 | 116 | { |
| grisha_b13 | 0:aa53c09fba30 | 117 | //----- настраиваем порт serial ------ |
| grisha_b13 | 0:aa53c09fba30 | 118 | pc.baud(UART_BAUD); |
| grisha_b13 | 0:aa53c09fba30 | 119 | pc.attach(&pc_interrupt); |
| grisha_b13 | 0:aa53c09fba30 | 120 | |
| grisha_b13 | 0:aa53c09fba30 | 121 | //--- запускаем логич.задач по таймеру delay_time msec ------ |
| grisha_b13 | 0:aa53c09fba30 | 122 | RtosTimer t_msec(&logic_tasks); |
| grisha_b13 | 0:aa53c09fba30 | 123 | t_msec.start(delay_time); |
| grisha_b13 | 0:aa53c09fba30 | 124 | |
| grisha_b13 | 0:aa53c09fba30 | 125 | while(true) |
| grisha_b13 | 0:aa53c09fba30 | 126 | { |
| grisha_b13 | 0:aa53c09fba30 | 127 | led = !led; |
| grisha_b13 | 0:aa53c09fba30 | 128 | |
| grisha_b13 | 0:aa53c09fba30 | 129 | // проверяем usb |
| grisha_b13 | 0:aa53c09fba30 | 130 | if (pc_i > 1 && pc_i == pc_m) { |
| grisha_b13 | 0:aa53c09fba30 | 131 | pc_buffer[pc_i++] = 0; pc_i = 0; |
| grisha_b13 | 0:aa53c09fba30 | 132 | y01 = 1; |
| grisha_b13 | 0:aa53c09fba30 | 133 | // --- устанавливаем значение переменных ---- |
| grisha_b13 | 0:aa53c09fba30 | 134 | if(strstr(pc_buffer, "=")) { |
| grisha_b13 | 0:aa53c09fba30 | 135 | if(strstr(pc_buffer, "pr001")) { pr001 = read_val(); pc.printf("ok\n"); check_par1 = 1; } |
| grisha_b13 | 0:aa53c09fba30 | 136 | if(strstr(pc_buffer, "pr002")) { pr002 = read_val(); pc.printf("ok\n"); check_par2 = 1; } |
| grisha_b13 | 0:aa53c09fba30 | 137 | if(strstr(pc_buffer, "pr003")) { pr003 = read_val(); pc.printf("ok\n"); check_par3 = 1; } |
| grisha_b13 | 0:aa53c09fba30 | 138 | if(strstr(pc_buffer, "pr004")) { pr004 = read_val(); pc.printf("ok\n"); check_par4 = 1; } |
| grisha_b13 | 0:aa53c09fba30 | 139 | if(strstr(pc_buffer, "pr005")) { pr005 = read_val(); pc.printf("ok\n"); check_par5 = 1; } |
| grisha_b13 | 0:aa53c09fba30 | 140 | |
| grisha_b13 | 0:aa53c09fba30 | 141 | if(strstr(pc_buffer, "vr000")) { vr000 = read_val(); pc.printf("ok\n"); } |
| grisha_b13 | 0:aa53c09fba30 | 142 | if(strstr(pc_buffer, "vr001")) { vr001 = read_val(); pc.printf("ok\n"); } |
| grisha_b13 | 0:aa53c09fba30 | 143 | |
| grisha_b13 | 0:aa53c09fba30 | 144 | if(strstr(pc_buffer, "al000")) { al000 = read_val(); pc.printf("ok\n"); } |
| grisha_b13 | 0:aa53c09fba30 | 145 | } |
| grisha_b13 | 0:aa53c09fba30 | 146 | |
| grisha_b13 | 0:aa53c09fba30 | 147 | // --- отправляем в serial значение переменных --- |
| grisha_b13 | 0:aa53c09fba30 | 148 | if(strstr(pc_buffer, "?")) { |
| grisha_b13 | 0:aa53c09fba30 | 149 | if(strstr(pc_buffer, "pr001?")) { pc.printf("pr001:%d\n", pr001); } |
| grisha_b13 | 0:aa53c09fba30 | 150 | if(strstr(pc_buffer, "pr002?")) { pc.printf("pr002:%d\n", pr002); } |
| grisha_b13 | 0:aa53c09fba30 | 151 | if(strstr(pc_buffer, "pr003?")) { pc.printf("pr003:%d\n", pr003); } |
| grisha_b13 | 0:aa53c09fba30 | 152 | if(strstr(pc_buffer, "pr004?")) { pc.printf("pr004:%d\n", pr004); } |
| grisha_b13 | 0:aa53c09fba30 | 153 | if(strstr(pc_buffer, "pr005?")) { pc.printf("pr005:%d\n", pr005); } |
| grisha_b13 | 0:aa53c09fba30 | 154 | |
| grisha_b13 | 0:aa53c09fba30 | 155 | if(strstr(pc_buffer, "vr000?")) { pc.printf("vr000:%d\n", vr000); } |
| grisha_b13 | 0:aa53c09fba30 | 156 | if(strstr(pc_buffer, "vr001?")) { pc.printf("vr001:%d\n", vr001); } |
| grisha_b13 | 0:aa53c09fba30 | 157 | |
| grisha_b13 | 0:aa53c09fba30 | 158 | if(strstr(pc_buffer, "al000?")) { pc.printf("al000:%d\n", al000); } |
| grisha_b13 | 0:aa53c09fba30 | 159 | } |
| grisha_b13 | 0:aa53c09fba30 | 160 | |
| grisha_b13 | 0:aa53c09fba30 | 161 | } else { pc_m = pc_i; y01 = 0;} |
| grisha_b13 | 0:aa53c09fba30 | 162 | |
| grisha_b13 | 0:aa53c09fba30 | 163 | Thread::wait(250); |
| grisha_b13 | 0:aa53c09fba30 | 164 | } |
| grisha_b13 | 0:aa53c09fba30 | 165 | } |
| grisha_b13 | 0:aa53c09fba30 | 166 | |
| grisha_b13 | 0:aa53c09fba30 | 167 | /**************** логические задачи контроллера *********************/ |
| grisha_b13 | 0:aa53c09fba30 | 168 | |
| grisha_b13 | 0:aa53c09fba30 | 169 | // логические задачи. вызываются для выполнения |
| grisha_b13 | 0:aa53c09fba30 | 170 | // каждые delay_time мсек |
| grisha_b13 | 0:aa53c09fba30 | 171 | void logic_tasks() { |
| grisha_b13 | 0:aa53c09fba30 | 172 | |
| grisha_b13 | 0:aa53c09fba30 | 173 | // подготовка входн.информации |
| grisha_b13 | 0:aa53c09fba30 | 174 | timers(); |
| grisha_b13 | 0:aa53c09fba30 | 175 | read_inputs(); |
| grisha_b13 | 0:aa53c09fba30 | 176 | |
| grisha_b13 | 0:aa53c09fba30 | 177 | // логичeские задачи (организационный блок) |
| grisha_b13 | 0:aa53c09fba30 | 178 | // запускаем лог задачи только после получения всех параметров из rasp-pico |
| grisha_b13 | 0:aa53c09fba30 | 179 | if(check_par1 == 1 && check_par2 == 1 && check_par3 == 1 |
| grisha_b13 | 0:aa53c09fba30 | 180 | && check_par4 == 1 && check_par5 == 1) { |
| grisha_b13 | 0:aa53c09fba30 | 181 | task(); |
| grisha_b13 | 0:aa53c09fba30 | 182 | } |
| grisha_b13 | 0:aa53c09fba30 | 183 | |
| grisha_b13 | 0:aa53c09fba30 | 184 | // формирование выходн.информации |
| grisha_b13 | 0:aa53c09fba30 | 185 | write_outs(); |
| grisha_b13 | 0:aa53c09fba30 | 186 | save_stat(); |
| grisha_b13 | 0:aa53c09fba30 | 187 | } |
| grisha_b13 | 0:aa53c09fba30 | 188 | |
| grisha_b13 | 0:aa53c09fba30 | 189 | //---------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 190 | // формирование значения переменных |
| grisha_b13 | 0:aa53c09fba30 | 191 | // в соответствии с сигналами на входах контроллер |
| grisha_b13 | 0:aa53c09fba30 | 192 | void read_inputs() { |
| grisha_b13 | 0:aa53c09fba30 | 193 | // читаем локальные входа контроллера |
| grisha_b13 | 0:aa53c09fba30 | 194 | x01 = x_01; x05 = x_05; |
| grisha_b13 | 0:aa53c09fba30 | 195 | x02 = x_02; x06 = x_06; |
| grisha_b13 | 0:aa53c09fba30 | 196 | x03 = x_03; x07 = x_07; |
| grisha_b13 | 0:aa53c09fba30 | 197 | x04 = x_04; x08 = x_08; |
| grisha_b13 | 0:aa53c09fba30 | 198 | swd01 = swd_01; swd02 = swd_02; |
| grisha_b13 | 0:aa53c09fba30 | 199 | swd03 = swd_03; swd04 = swd_04; |
| grisha_b13 | 0:aa53c09fba30 | 200 | } |
| grisha_b13 | 0:aa53c09fba30 | 201 | |
| grisha_b13 | 0:aa53c09fba30 | 202 | //---------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 203 | // установка выходов контроллера |
| grisha_b13 | 0:aa53c09fba30 | 204 | // в соответствии значения преременным |
| grisha_b13 | 0:aa53c09fba30 | 205 | void write_outs(){ |
| grisha_b13 | 0:aa53c09fba30 | 206 | // устанавливаем локальные выходы |
| grisha_b13 | 0:aa53c09fba30 | 207 | y_01 = y01; y_04 = y04; |
| grisha_b13 | 0:aa53c09fba30 | 208 | y_02 = y02; y_05 = y05; |
| grisha_b13 | 0:aa53c09fba30 | 209 | y_03 = y03; y_06 = y06; |
| grisha_b13 | 0:aa53c09fba30 | 210 | } |
| grisha_b13 | 0:aa53c09fba30 | 211 | |
| grisha_b13 | 0:aa53c09fba30 | 212 | //---------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 213 | // сохранение значения переменных для обработки |
| grisha_b13 | 0:aa53c09fba30 | 214 | // в след.цикле (установка, сброс) |
| grisha_b13 | 0:aa53c09fba30 | 215 | void save_stat(){ |
| grisha_b13 | 0:aa53c09fba30 | 216 | x01_m = x01; x02_m = x02; x03_m = x03; x04_m = x04; |
| grisha_b13 | 0:aa53c09fba30 | 217 | x05_m = x05; x06_m = x06; x07_m = x07; x08_m = x08; |
| grisha_b13 | 0:aa53c09fba30 | 218 | y01_m = y01; y02_m = y02; y03_m = y03; y04_m = y04; |
| grisha_b13 | 0:aa53c09fba30 | 219 | y05_m = y05; y06_m = y06; |
| grisha_b13 | 0:aa53c09fba30 | 220 | swd01_m = swd01; |
| grisha_b13 | 0:aa53c09fba30 | 221 | swd02_m = swd02; |
| grisha_b13 | 0:aa53c09fba30 | 222 | swd03_m = swd03; |
| grisha_b13 | 0:aa53c09fba30 | 223 | swd04_m = swd04; |
| grisha_b13 | 0:aa53c09fba30 | 224 | } |
| grisha_b13 | 0:aa53c09fba30 | 225 | |
| grisha_b13 | 0:aa53c09fba30 | 226 | //---------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 227 | // изменение значения секундных и милисекундных таймеров |
| grisha_b13 | 0:aa53c09fba30 | 228 | // (дискретность delay_time мсек) |
| grisha_b13 | 0:aa53c09fba30 | 229 | void timers(){ |
| grisha_b13 | 0:aa53c09fba30 | 230 | |
| grisha_b13 | 0:aa53c09fba30 | 231 | int i = delay_time; // время цикла в мсек |
| grisha_b13 | 0:aa53c09fba30 | 232 | int max1 = 60000; // макс. значение для мсек таймеров (60sec) |
| grisha_b13 | 0:aa53c09fba30 | 233 | int max2 = 36000; // макс. значение для сек таймеров (10час) |
| grisha_b13 | 0:aa53c09fba30 | 234 | |
| grisha_b13 | 0:aa53c09fba30 | 235 | // timers, 1s |
| grisha_b13 | 0:aa53c09fba30 | 236 | if(t_sys < 1000) { |
| grisha_b13 | 0:aa53c09fba30 | 237 | t_sys = t_sys + i; |
| grisha_b13 | 0:aa53c09fba30 | 238 | } else { |
| grisha_b13 | 0:aa53c09fba30 | 239 | t_sys = 0; |
| grisha_b13 | 0:aa53c09fba30 | 240 | if(t101 < max2) { t101 = t101 + 1; } |
| grisha_b13 | 0:aa53c09fba30 | 241 | if(t102 < max2) { t102 = t102 + 1; } |
| grisha_b13 | 0:aa53c09fba30 | 242 | if(t103 < max2) { t103 = t103 + 1; } |
| grisha_b13 | 0:aa53c09fba30 | 243 | if(t104 < max2) { t104 = t104 + 1; } |
| grisha_b13 | 0:aa53c09fba30 | 244 | if(t105 < max2) { t105 = t105 + 1; } |
| grisha_b13 | 0:aa53c09fba30 | 245 | } |
| grisha_b13 | 0:aa53c09fba30 | 246 | |
| grisha_b13 | 0:aa53c09fba30 | 247 | // timers, 10ms |
| grisha_b13 | 0:aa53c09fba30 | 248 | if(t01 < max1) { t01 = t01 + i; } |
| grisha_b13 | 0:aa53c09fba30 | 249 | if(t02 < max1) { t02 = t02 + i; } |
| grisha_b13 | 0:aa53c09fba30 | 250 | if(t03 < max1) { t03 = t03 + i; } |
| grisha_b13 | 0:aa53c09fba30 | 251 | if(t04 < max1) { t04 = t04 + i; } |
| grisha_b13 | 0:aa53c09fba30 | 252 | if(t05 < max1) { t05 = t05 + i; } |
| grisha_b13 | 0:aa53c09fba30 | 253 | } |
| grisha_b13 | 0:aa53c09fba30 | 254 | |
| grisha_b13 | 0:aa53c09fba30 | 255 | //---------------------------------------- |
| grisha_b13 | 0:aa53c09fba30 | 256 | // поиск и чтение значения из строки |
| grisha_b13 | 0:aa53c09fba30 | 257 | // возвращает целое число. 0-999999 |
| grisha_b13 | 0:aa53c09fba30 | 258 | int read_val() { |
| grisha_b13 | 0:aa53c09fba30 | 259 | char inp_c[10]; |
| grisha_b13 | 0:aa53c09fba30 | 260 | int val = 0; |
| grisha_b13 | 0:aa53c09fba30 | 261 | int i = 0; |
| grisha_b13 | 0:aa53c09fba30 | 262 | int p = 0; |
| grisha_b13 | 0:aa53c09fba30 | 263 | |
| grisha_b13 | 0:aa53c09fba30 | 264 | while(p < MAX_LEN) { |
| grisha_b13 | 0:aa53c09fba30 | 265 | if(pc_buffer[p] == '=') { break; } |
| grisha_b13 | 0:aa53c09fba30 | 266 | p++; |
| grisha_b13 | 0:aa53c09fba30 | 267 | } |
| grisha_b13 | 0:aa53c09fba30 | 268 | |
| grisha_b13 | 0:aa53c09fba30 | 269 | p++; |
| grisha_b13 | 0:aa53c09fba30 | 270 | i = 0; if(pc_buffer[p + i] >= 48 && pc_buffer[p + i] <= 57) { inp_c[i] = pc_buffer[p + i]; } else { inp_c[i] = 0; } |
| grisha_b13 | 0:aa53c09fba30 | 271 | i = 1; if(pc_buffer[p + i] >= 48 && pc_buffer[p + i] <= 57) { inp_c[i] = pc_buffer[p + i]; } else { inp_c[i] = 0; } |
| grisha_b13 | 0:aa53c09fba30 | 272 | i = 2; if(pc_buffer[p + i] >= 48 && pc_buffer[p + i] <= 57) { inp_c[i] = pc_buffer[p + i]; } else { inp_c[i] = 0; } |
| grisha_b13 | 0:aa53c09fba30 | 273 | i = 3; if(pc_buffer[p + i] >= 48 && pc_buffer[p + i] <= 57) { inp_c[i] = pc_buffer[p + i]; } else { inp_c[i] = 0; } |
| grisha_b13 | 0:aa53c09fba30 | 274 | i = 4; if(pc_buffer[p + i] >= 48 && pc_buffer[p + i] <= 57) { inp_c[i] = pc_buffer[p + i]; } else { inp_c[i] = 0; } |
| grisha_b13 | 0:aa53c09fba30 | 275 | i = 5; if(pc_buffer[p + i] >= 48 && pc_buffer[p + i] <= 57) { inp_c[i] = pc_buffer[p + i]; } else { inp_c[i] = 0; } |
| grisha_b13 | 0:aa53c09fba30 | 276 | inp_c[6] = 0 ; |
| grisha_b13 | 0:aa53c09fba30 | 277 | |
| grisha_b13 | 0:aa53c09fba30 | 278 | val = atoi(inp_c); |
| grisha_b13 | 0:aa53c09fba30 | 279 | return val; |
| grisha_b13 | 0:aa53c09fba30 | 280 | } |
| grisha_b13 | 0:aa53c09fba30 | 281 | |
| grisha_b13 | 0:aa53c09fba30 | 282 |