forkd

Dependencies:   mbed

Fork of LGstaandart by Dmitry Kovalev

Committer:
Kovalev_D
Date:
Thu Jan 25 13:59:43 2018 +0000
Revision:
231:079835d508ef
Parent:
228:a8195e1b1123
Child:
232:130a2b5003e6
termo

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