Dmitry Kovalev
/
LGfiltr
forkd
Fork of LGstaandart by
Diff: QEI.c
- Revision:
- 208:19150d2b528f
- Parent:
- 207:d1ce992f5d17
- Child:
- 209:224e7331a061
diff -r d1ce992f5d17 -r 19150d2b528f QEI.c --- a/QEI.c Fri Jan 13 08:27:28 2017 +0000 +++ b/QEI.c Tue Feb 07 10:11:35 2017 +0000 @@ -26,6 +26,7 @@ int Buff_Restored_sin2 [32]; void D_QEI(void) { + // LoopOn Dif_QEI=0; Cur_QEI = LPC_QEI->POS & 0xFFFF; // считывание текущего значения энкодера. @@ -33,17 +34,16 @@ //LPC_QEI->CON = 0xF; Dif_QEI = (Cur_QEI - Last_QEI); // получение приращения.() - temp32 = Dif_QEI; + /* temp32 = Dif_QEI; Gyro.CuruAngle32 += temp32; - temp32=0; + temp32=0;*/ Last_QEI = Cur_QEI; // запись текущего значения энкодера в регистр предыдущего значения. if (Dif_QEI < -0xfff) Dif_QEI += 0x10000; // обработка прохода значения через ноль if (Dif_QEI > 0xfff) Dif_QEI -= 0x10000; // обработка прохода значения через ноль Buff_1Point[CountV255] = Dif_QEI ; // накопление в буфер еденичных значений приращения по каждому такту. - - - + + ////////////////////////////////////////////////////////////////////////////////////////////// Pulse_8Point += Buff_1Point[CountV255]; @@ -63,8 +63,8 @@ Pulse_64Point += Buff_1Point[CountV255]; - Pulse_64Point -= Buff_1Point[(CountV255-32) & 0xff]; // заполнение буфера накопленых приращений за два 32 тактов - Gyro.Cnt_Dif = (Pulse_64Point); + Pulse_64Point -= Buff_1Point[(CountV255-64) & 0xff]; // заполнение буфера накопленых приращений за два 32 тактов + // Gyro.Cnt_Dif = (Pulse_64Point); Buff_64Point[CountV31] = (Pulse_64Point ); @@ -75,9 +75,9 @@ Buff_16PointD[CountV31] = Pulse_16PointD ; - //LoopOff + Buff_Restored_sin [CountV31] = (Buff_16PointD[CountV31]) - Buff_32Point[CountV31]; - Buff_Restored_sin2 [CountV31] = (Buff_16Point[CountV31]) - Buff_32Point[CountV31]; + // Buff_Restored_sin2 [CountV31] = (Buff_16Point[CountV31]) - Buff_32Point[CountV31]; if((Buff_Restored_sin [CountV31]) > 0) { CaunAddPlus += Buff_Restored_sin [CountV31]; @@ -85,7 +85,7 @@ else {CaunAddMin -= Buff_Restored_sin [CountV31];} //счетчик отрицательных импульсов // расчет амплитуды Gyro.CuruAngle += Buff_32Point [CountV31]; - +//LoopOff } /* void CurAngle(void)