forkd

Dependencies:   mbed

Fork of LGstaandart by Dmitry Kovalev

Committer:
Kovalev_D
Date:
Wed Jan 31 13:41:23 2018 +0000
Revision:
232:130a2b5003e6
Parent:
231:079835d508ef
static termocorr

Who changed what in which revision?

UserRevisionLine numberNew contents of line
igor_v 0:8ad47e2b6f00 1 #include "MTimer.h"
igor_v 0:8ad47e2b6f00 2 #include "LPC17xx.h"
igor_v 0:8ad47e2b6f00 3 #include "MTimer.h"
igor_v 0:8ad47e2b6f00 4 #include "vibro.h"
igor_v 0:8ad47e2b6f00 5 #include "QEI.h"
igor_v 0:8ad47e2b6f00 6 #include "Global.h"
Kovalev_D 228:a8195e1b1123 7 #include "string.h"
igor_v 0:8ad47e2b6f00 8 #include "SPI.h"
igor_v 0:8ad47e2b6f00 9 #include "InputOutput.h"
Kovalev_D 228:a8195e1b1123 10 #include "time.h"
Kovalev_D 231:079835d508ef 11 //#define HALFINT 16384
Kovalev_D 197:7a05523bf588 12 unsigned int CountV64=0;
igor_v 0:8ad47e2b6f00 13 unsigned int CountV31=0;
Kovalev_D 197:7a05523bf588 14 unsigned int CountV255=0;
Kovalev_D 215:b58b887fd367 15 unsigned int CountV511=0;
Kovalev_D 232:130a2b5003e6 16 unsigned int f;
Kovalev_D 124:9ae09249f842 17 int loop=0;
Kovalev_D 208:19150d2b528f 18 int t;
Kovalev_D 231:079835d508ef 19 float aPLC[5];
Kovalev_D 231:079835d508ef 20 float bPLC[5];
Kovalev_D 88:b5c1d9d338d1 21 /////////////////////////////////////////////////////
Kovalev_D 88:b5c1d9d338d1 22 /////////////////////EVENT///////////////////////////
Kovalev_D 88:b5c1d9d338d1 23 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 24 /////////////////////////////////////////////////////
Kovalev_D 214:4c70e452c491 25 ///////////////////// 1250Hz ///////////////////////////
Kovalev_D 214:4c70e452c491 26 /////////////////////////////////////////////////////
Kovalev_D 214:4c70e452c491 27 void Event_1250Hz(void)// событие раз в 1,25 КГц
Kovalev_D 214:4c70e452c491 28 {
Kovalev_D 214:4c70e452c491 29 if(Event1250Hz)
Kovalev_D 214:4c70e452c491 30 {
Kovalev_D 231:079835d508ef 31
Kovalev_D 214:4c70e452c491 32 Gyro.EvenRate7=1;
Kovalev_D 231:079835d508ef 33
Kovalev_D 232:130a2b5003e6 34
Kovalev_D 214:4c70e452c491 35 Event1250Hz--;
Kovalev_D 215:b58b887fd367 36
Kovalev_D 214:4c70e452c491 37 }
Kovalev_D 214:4c70e452c491 38 }
Kovalev_D 222:7de7b3bf3a1d 39
Kovalev_D 222:7de7b3bf3a1d 40
Kovalev_D 222:7de7b3bf3a1d 41
Kovalev_D 222:7de7b3bf3a1d 42
Kovalev_D 222:7de7b3bf3a1d 43 void JumpMod(void)
Kovalev_D 222:7de7b3bf3a1d 44 {
Kovalev_D 222:7de7b3bf3a1d 45 static int JumpFlag=0;
Kovalev_D 222:7de7b3bf3a1d 46 switch(JumpFlag) {
Kovalev_D 222:7de7b3bf3a1d 47 case 0:
Kovalev_D 222:7de7b3bf3a1d 48 Spi.DAC_B-=Gyro.JumpDelta;
Kovalev_D 222:7de7b3bf3a1d 49 JumpFlag=1;
Kovalev_D 222:7de7b3bf3a1d 50 break;
Kovalev_D 222:7de7b3bf3a1d 51 case 1:
Kovalev_D 222:7de7b3bf3a1d 52 Spi.DAC_B+=Gyro.JumpDelta;
Kovalev_D 222:7de7b3bf3a1d 53 JumpFlag=0;
Kovalev_D 222:7de7b3bf3a1d 54 break;
Kovalev_D 222:7de7b3bf3a1d 55 }
Kovalev_D 222:7de7b3bf3a1d 56
Kovalev_D 222:7de7b3bf3a1d 57 }
Kovalev_D 222:7de7b3bf3a1d 58
Kovalev_D 222:7de7b3bf3a1d 59
Kovalev_D 214:4c70e452c491 60 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 61 ///////////////////// 1Hz ///////////////////////////
Kovalev_D 89:a0d344db227e 62 /////////////////////////////////////////////////////
Kovalev_D 231:079835d508ef 63 /*int InitPlcFilt ( void )
Kovalev_D 231:079835d508ef 64 {
Kovalev_D 231:079835d508ef 65
Kovalev_D 231:079835d508ef 66 int CenterFreq = 12800;
Kovalev_D 231:079835d508ef 67 int BandWidth = 50;
Kovalev_D 231:079835d508ef 68 float K, R, Cos_x_2, R_x_R;
Kovalev_D 231:079835d508ef 69 float pi = 3.1415;
Kovalev_D 231:079835d508ef 70
Kovalev_D 231:079835d508ef 71 R = 1.0 - 3.0 * BandWidth;
Kovalev_D 231:079835d508ef 72 R_x_R = R * R;
Kovalev_D 231:079835d508ef 73 Cos_x_2 = cos(2.0 * pi * CenterFreq) * 2.0;
Kovalev_D 231:079835d508ef 74 K = (1.0 - R * Cos_x_2 + R_x_R)/(2.0 - Cos_x_2);
Kovalev_D 231:079835d508ef 75
Kovalev_D 231:079835d508ef 76 aPLC[0] = ((1.0 - K));
Kovalev_D 231:079835d508ef 77 aPLC[1] = (((K - R) * Cos_x_2));
Kovalev_D 231:079835d508ef 78 aPLC[2] = ((R_x_R - K));
Kovalev_D 231:079835d508ef 79
Kovalev_D 231:079835d508ef 80 bPLC[0] = 0;
Kovalev_D 231:079835d508ef 81 bPLC[1] = ((R * Cos_x_2));
Kovalev_D 231:079835d508ef 82 bPLC[2] = ((- R_x_R));
Kovalev_D 231:079835d508ef 83
Kovalev_D 231:079835d508ef 84 for(int q=0; q<3; q++)
Kovalev_D 231:079835d508ef 85 {
Kovalev_D 231:079835d508ef 86 sprintf((Time),"%f %f\r\n", aPLC[q],bPLC[q]);
Kovalev_D 231:079835d508ef 87 WriteCon(Time);
Kovalev_D 231:079835d508ef 88 }
Kovalev_D 231:079835d508ef 89 return 0;
Kovalev_D 231:079835d508ef 90
Kovalev_D 231:079835d508ef 91 }*/
Kovalev_D 231:079835d508ef 92
Kovalev_D 231:079835d508ef 93
Kovalev_D 222:7de7b3bf3a1d 94
Kovalev_D 228:a8195e1b1123 95
Kovalev_D 88:b5c1d9d338d1 96 void Event_1Hz(void)// событие раз в 1 Гц
Kovalev_D 222:7de7b3bf3a1d 97 {
Kovalev_D 231:079835d508ef 98 static int OldTermoMod;
Kovalev_D 222:7de7b3bf3a1d 99 static int tempdac=0,tempdac1,JumpTimer=0;
Kovalev_D 228:a8195e1b1123 100
Kovalev_D 115:e5a230e5af52 101 if (Event1Hz)
Kovalev_D 222:7de7b3bf3a1d 102 {
Kovalev_D 232:130a2b5003e6 103 TempClac();
Kovalev_D 231:079835d508ef 104
Kovalev_D 232:130a2b5003e6 105
Kovalev_D 232:130a2b5003e6 106 TermoCopensRecalc(Spi.ADC1, Spi.ADC2, 10000);
Kovalev_D 232:130a2b5003e6 107 PlcWormDeltaout=0;
Kovalev_D 227:2774b56bfab0 108
Kovalev_D 231:079835d508ef 109 if(Gyro.RgConA&0x4) JumpTimer=0;
Kovalev_D 232:130a2b5003e6 110 else
Kovalev_D 222:7de7b3bf3a1d 111 {
Kovalev_D 222:7de7b3bf3a1d 112 JumpTimer++;
Kovalev_D 222:7de7b3bf3a1d 113 if(JumpTimer>(Gyro.TimeToJump-1))
Kovalev_D 222:7de7b3bf3a1d 114 {
Kovalev_D 232:130a2b5003e6 115 //Gyro.PLCDelay = GyroP.Str.PLCDelay;
Kovalev_D 222:7de7b3bf3a1d 116 JumpMod();
Kovalev_D 222:7de7b3bf3a1d 117 JumpTimer=0;
Kovalev_D 222:7de7b3bf3a1d 118 }
Kovalev_D 232:130a2b5003e6 119
Kovalev_D 232:130a2b5003e6 120 }
Kovalev_D 222:7de7b3bf3a1d 121
Kovalev_D 208:19150d2b528f 122 Discharg();
Kovalev_D 208:19150d2b528f 123 BackLight();
Kovalev_D 208:19150d2b528f 124 Gyro.Rate1_Event = 1;
Kovalev_D 208:19150d2b528f 125 Event1Hz--;
Kovalev_D 208:19150d2b528f 126 Time1Hz++;
Kovalev_D 222:7de7b3bf3a1d 127 }
Kovalev_D 88:b5c1d9d338d1 128 }
Kovalev_D 222:7de7b3bf3a1d 129
Kovalev_D 89:a0d344db227e 130 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 131 ///////////////////// 1kHz //////////////////////////
Kovalev_D 197:7a05523bf588 132 /////////////////////////////////////////////////////
Kovalev_D 88:b5c1d9d338d1 133 void Event_1KHz(void)// событие раз в 1 кГц
Kovalev_D 214:4c70e452c491 134 { if (Event1K)
Kovalev_D 116:66f1f0ff2dab 135 {
Kovalev_D 214:4c70e452c491 136 if(Gyro.PLCDelay) Gyro.PLCDelay--;
Kovalev_D 88:b5c1d9d338d1 137 Event1K --;
Kovalev_D 215:b58b887fd367 138
Kovalev_D 116:66f1f0ff2dab 139 Time1K++;//первый ++ работает каждые 125 (event100kHz)второй был в 100 кГц
Kovalev_D 231:079835d508ef 140 if (Time1K > 1007)
Kovalev_D 115:e5a230e5af52 141 {
Kovalev_D 231:079835d508ef 142 Time1K =0;
Kovalev_D 88:b5c1d9d338d1 143 Event1Hz ++;
Kovalev_D 88:b5c1d9d338d1 144 }
Kovalev_D 231:079835d508ef 145
Kovalev_D 214:4c70e452c491 146 }
Kovalev_D 88:b5c1d9d338d1 147 }
Kovalev_D 209:224e7331a061 148
Kovalev_D 231:079835d508ef 149 void Event_10KHz(void)// событие раз в 5 кГц
Kovalev_D 218:b4067cac75c0 150 {
Kovalev_D 218:b4067cac75c0 151 int temp=0;
Kovalev_D 231:079835d508ef 152 if (Event10K)
Kovalev_D 222:7de7b3bf3a1d 153 {
Kovalev_D 231:079835d508ef 154 // Gyro.EvenRate10K++;
Kovalev_D 231:079835d508ef 155 Event10K --;
Kovalev_D 209:224e7331a061 156 }
Kovalev_D 209:224e7331a061 157 }
Kovalev_D 124:9ae09249f842 158 void Event_500Hz(void)// событие раз в 500 Гц
Kovalev_D 124:9ae09249f842 159 {
Kovalev_D 124:9ae09249f842 160 if(Event500Hz)
Kovalev_D 225:f8fee6c586cc 161 {
Kovalev_D 231:079835d508ef 162
Kovalev_D 205:775d54fdf646 163 Event500Hz--;
Kovalev_D 208:19150d2b528f 164 Gyro.Event_500Hz=1;// Event 500Гц выдачи данных для постройки графика управления вибро
Kovalev_D 197:7a05523bf588 165 }
Kovalev_D 197:7a05523bf588 166 }
Kovalev_D 209:224e7331a061 167 void Event_250Hz(void)
Kovalev_D 209:224e7331a061 168 {
Kovalev_D 209:224e7331a061 169 if(Event250Hz)
Kovalev_D 209:224e7331a061 170 {
Kovalev_D 218:b4067cac75c0 171
Kovalev_D 209:224e7331a061 172 // Gyro.CuruAngle=0;
Kovalev_D 209:224e7331a061 173 Event250Hz--;
Kovalev_D 232:130a2b5003e6 174
Kovalev_D 209:224e7331a061 175 }
Kovalev_D 209:224e7331a061 176 }
Kovalev_D 89:a0d344db227e 177 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 178 ///////////////////// 100kHz //////////////////////////
Kovalev_D 89:a0d344db227e 179 /////////////////////////////////////////////////////
Kovalev_D 193:a0fe8bfc97e4 180 void Event_100KHz(void)// событие раз в 100 кГц
Kovalev_D 88:b5c1d9d338d1 181 {
Kovalev_D 162:44e4ded32c6a 182
Kovalev_D 88:b5c1d9d338d1 183 if (Event100K) {
Kovalev_D 197:7a05523bf588 184
Kovalev_D 88:b5c1d9d338d1 185 Event100K --;
Kovalev_D 197:7a05523bf588 186
Kovalev_D 124:9ae09249f842 187 if (OutBufCon1Count)OutBufCon1Count--; // обратный отсчет для управления ногой и формирование задержки на выдачу
Kovalev_D 124:9ae09249f842 188
Kovalev_D 124:9ae09249f842 189 PinCheng(); // чтение регистра состояния выводов(вибро, полсветка, поджиг, LED) и управление выводами.
Kovalev_D 88:b5c1d9d338d1 190 }
Kovalev_D 88:b5c1d9d338d1 191 }
Kovalev_D 89:a0d344db227e 192 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 193 //////////////////vibro EVENT////////////////////////
Kovalev_D 89:a0d344db227e 194 /////////////////////////////////////////////////////
Kovalev_D 88:b5c1d9d338d1 195 void Event_Vibro(void)// событие от вибр
Kovalev_D 88:b5c1d9d338d1 196 {
Kovalev_D 88:b5c1d9d338d1 197 if (EventVibro) {
Kovalev_D 88:b5c1d9d338d1 198 EventVibro --;
Kovalev_D 88:b5c1d9d338d1 199 }
Kovalev_D 88:b5c1d9d338d1 200 }
Kovalev_D 89:a0d344db227e 201 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 202 /////////////////////////////////////////////////////
Kovalev_D 89:a0d344db227e 203 /////////////////////////////////////////////////////
Kovalev_D 88:b5c1d9d338d1 204
Kovalev_D 88:b5c1d9d338d1 205
Kovalev_D 112:4a96133a1311 206 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 112:4a96133a1311 207 ////////////////////////////////////////////////////////TIMER1////////////////////////////////////////////////////////////////////////////
Kovalev_D 112:4a96133a1311 208 //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
Kovalev_D 112:4a96133a1311 209
Kovalev_D 112:4a96133a1311 210 //////////////////////////////////////////////////////////////////////
Kovalev_D 112:4a96133a1311 211 /////////////////////инициализация таймера 1 /////////////////////////
Kovalev_D 112:4a96133a1311 212 //////////////////////////////////////////////////////////////////////
Kovalev_D 112:4a96133a1311 213
Kovalev_D 112:4a96133a1311 214 unsigned int Init_TIM1 (unsigned int TimerInterval )
Kovalev_D 112:4a96133a1311 215 {
Kovalev_D 214:4c70e452c491 216 // LPC_SC->PCLKSEL0 |= (1<<4);
Kovalev_D 220:04c54405b82d 217
Kovalev_D 112:4a96133a1311 218 LPC_TIM1->MR0 = TimerInterval;
Kovalev_D 112:4a96133a1311 219 LPC_TIM1->MCR = 3; /* Interrupt and Reset on MR1 */
Kovalev_D 112:4a96133a1311 220 NVIC_EnableIRQ(TIMER1_IRQn);
Kovalev_D 112:4a96133a1311 221 }
Kovalev_D 112:4a96133a1311 222
Kovalev_D 112:4a96133a1311 223
igor_v 0:8ad47e2b6f00 224 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 225 /////////////////////////включение таймера 1//////////////////////////
igor_v 0:8ad47e2b6f00 226 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 227 void enable_timer1( void )
igor_v 21:bc8c1cec3da6 228 {
igor_v 21:bc8c1cec3da6 229 LPC_TIM1->TCR = 1;
igor_v 21:bc8c1cec3da6 230 return;
igor_v 21:bc8c1cec3da6 231 }
igor_v 0:8ad47e2b6f00 232
igor_v 0:8ad47e2b6f00 233
igor_v 0:8ad47e2b6f00 234 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 235 /////////////////////////////////////////////////TIMER2//////////////////////////////////////////////////////////////////////////////////
igor_v 0:8ad47e2b6f00 236 /////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 237
igor_v 0:8ad47e2b6f00 238 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 239 /////////////////////инициализация таймера 2 /////////////////////////
igor_v 0:8ad47e2b6f00 240 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 241 unsigned int Init_TIM2 (void)
igor_v 21:bc8c1cec3da6 242 {
Kovalev_D 124:9ae09249f842 243 LPC_TIM2->MR0 = 257;
igor_v 21:bc8c1cec3da6 244 LPC_TIM2->MCR = 3; /* Interrupt and Reset on MR0 */
igor_v 21:bc8c1cec3da6 245 NVIC_EnableIRQ(TIMER2_IRQn);
igor_v 21:bc8c1cec3da6 246 return 1;
igor_v 21:bc8c1cec3da6 247 }
igor_v 0:8ad47e2b6f00 248
igor_v 21:bc8c1cec3da6 249 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 250 /////////////////////////включение таймера 2//////////////////////////
igor_v 21:bc8c1cec3da6 251 //////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 252 void enable_timer2(void)
igor_v 21:bc8c1cec3da6 253 {
igor_v 21:bc8c1cec3da6 254 LPC_TIM2->TCR = 1;
igor_v 21:bc8c1cec3da6 255 LPC_TIM2->TCR = 0x01;
igor_v 21:bc8c1cec3da6 256 }
igor_v 21:bc8c1cec3da6 257
igor_v 21:bc8c1cec3da6 258
Kovalev_D 112:4a96133a1311 259 //////////////////////////////////////////////////////////////////////
Kovalev_D 112:4a96133a1311 260 /////////////////////////прерывание таймера 1//////////////////////////
Kovalev_D 112:4a96133a1311 261 //////////////////////////////////////////////////////////////////////
Kovalev_D 215:b58b887fd367 262 __irq void TIMER1_IRQHandler (void)//13.27 kHz(vibro*32)
Kovalev_D 205:775d54fdf646 263 {
Kovalev_D 208:19150d2b528f 264
igor_v 114:5cc38a53d8a7 265 ResetCS(ADC); //prepare ADC for sampling
Kovalev_D 112:4a96133a1311 266 SetDAC(DAC);
Kovalev_D 208:19150d2b528f 267 Global_Time++;
igor_v 114:5cc38a53d8a7 268 CountV255++; // инкремент счеттчика
Kovalev_D 215:b58b887fd367 269 CountV511++;
Kovalev_D 164:6f43f85fdd8d 270 CountV255 &= 0xff; // ОБРЕЗАНИЕ СЧЕТЧИКА
Kovalev_D 215:b58b887fd367 271 CountV511 &= 0x1ff;
Kovalev_D 197:7a05523bf588 272 CountV64 = CountV255 & 0x3f;
Kovalev_D 197:7a05523bf588 273 CountV31 = CountV255 & 0x1f; // малый счетчик
Kovalev_D 197:7a05523bf588 274
Kovalev_D 112:4a96133a1311 275 D_QEI(); //чтение данных по счетчику
Kovalev_D 143:2b15794a6cd2 276 cheng(); // выставление флагов в 32 тактном цикле.
Kovalev_D 116:66f1f0ff2dab 277
Kovalev_D 116:66f1f0ff2dab 278
Kovalev_D 116:66f1f0ff2dab 279 SetCS(ADC); //start ADC sampling
Kovalev_D 116:66f1f0ff2dab 280 ResetDAC(DAC);
Kovalev_D 197:7a05523bf588 281 SPI_Exchange(); //Чтение ADC_SPI
igor_v 114:5cc38a53d8a7 282
Kovalev_D 214:4c70e452c491 283 LPC_TIM1->IR = 1;
Kovalev_D 231:079835d508ef 284
Kovalev_D 112:4a96133a1311 285 }
Kovalev_D 112:4a96133a1311 286
igor_v 21:bc8c1cec3da6 287 ///////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 288 /////////////////////////прерывание таймера 2//////////////////////////
igor_v 21:bc8c1cec3da6 289 ///////////////////////////////////////////////////////////////////////
igor_v 21:bc8c1cec3da6 290 __irq void TIMER2_IRQHandler (void)
Kovalev_D 231:079835d508ef 291 {
Kovalev_D 231:079835d508ef 292
igor_v 21:bc8c1cec3da6 293 LPC_TIM2->IR = 1;
Kovalev_D 213:9953db9543d6 294 if (Gyro.UARTFlag)
Kovalev_D 213:9953db9543d6 295 {
Kovalev_D 213:9953db9543d6 296 if(Time_UART) Time_UART--;
Kovalev_D 213:9953db9543d6 297 }
Kovalev_D 214:4c70e452c491 298 //
Kovalev_D 214:4c70e452c491 299
igor_v 21:bc8c1cec3da6 300 Time_vibro++;
Kovalev_D 214:4c70e452c491 301 // VibroOut();
Kovalev_D 112:4a96133a1311 302 Gyro.VibroOutF=1;
Kovalev_D 214:4c70e452c491 303 Event100K ++;
Kovalev_D 214:4c70e452c491 304 Time1250Hz++;
Kovalev_D 197:7a05523bf588 305 Time500Hz++;
Kovalev_D 209:224e7331a061 306 Time250Hz++;
Kovalev_D 197:7a05523bf588 307 Time100K++;
Kovalev_D 231:079835d508ef 308 Time10K++;
Kovalev_D 209:224e7331a061 309 //Time2K++;
Kovalev_D 205:775d54fdf646 310 // Time250Hz++;
Kovalev_D 214:4c70e452c491 311
Kovalev_D 231:079835d508ef 312 if (Time1250Hz > 1000)
Kovalev_D 214:4c70e452c491 313 {
Kovalev_D 231:079835d508ef 314 Time1250Hz -= 1000;
Kovalev_D 214:4c70e452c491 315 Event1250Hz ++;
Kovalev_D 214:4c70e452c491 316 }
Kovalev_D 231:079835d508ef 317 if (Time100K == 89)
Kovalev_D 231:079835d508ef 318 {
Kovalev_D 231:079835d508ef 319
Kovalev_D 231:079835d508ef 320 Time100K -= 89;
Kovalev_D 197:7a05523bf588 321 Event1K ++;
Kovalev_D 231:079835d508ef 322
Kovalev_D 197:7a05523bf588 323 }
Kovalev_D 209:224e7331a061 324
Kovalev_D 231:079835d508ef 325 if (Time10K > 8)
Kovalev_D 231:079835d508ef 326 {
Kovalev_D 231:079835d508ef 327
Kovalev_D 231:079835d508ef 328
Kovalev_D 231:079835d508ef 329 Time10K = 0;
Kovalev_D 231:079835d508ef 330
Kovalev_D 231:079835d508ef 331
Kovalev_D 231:079835d508ef 332 Event10K ++;
Kovalev_D 231:079835d508ef 333
Kovalev_D 209:224e7331a061 334 }
Kovalev_D 209:224e7331a061 335
Kovalev_D 231:079835d508ef 336 if (Time500Hz > 180)
Kovalev_D 208:19150d2b528f 337 { // LoopOn
Kovalev_D 231:079835d508ef 338
Kovalev_D 231:079835d508ef 339 Time500Hz -= 180;
Kovalev_D 231:079835d508ef 340 Event500Hz ++;
Kovalev_D 231:079835d508ef 341
Kovalev_D 197:7a05523bf588 342 }
igor_v 21:bc8c1cec3da6 343 }