Prof Greg Egan
/
UAVXArm-GKE
UAVX Multicopter Flight Controller.
Diff: utils.c
- Revision:
- 2:90292f8bd179
- Parent:
- 0:62a1c91a859a
--- a/utils.c Fri Feb 25 01:35:24 2011 +0000 +++ b/utils.c Tue Apr 26 12:12:29 2011 +0000 @@ -2,7 +2,7 @@ // = UAVXArm Quadrocopter Controller = // = Copyright (c) 2008 by Prof. Greg Egan = // = Original V3.15 Copyright (c) 2007 Ing. Wolfgang Mahringer = -// = http://code.google.com/p/uavp-mods/ http://uavp.ch = +// = http://code.google.com/p/uavp-mods/ = // =============================================================================================== // This is part of UAVXArm. @@ -25,14 +25,17 @@ void Delay100mS(int16); void DoBeep100mS(uint8, uint8); void DoStartingBeeps(uint8); +void DoBeeperPulse1mS(uint16); void CheckAlarms(void); real32 SlewLimit(real32, real32, real32); real32 DecayX(real32, real32); -void LPFilter(real32*, real32*, real32, real32); +real32 LPFilter(real32, real32, real32); void Timing(uint8, uint32); TimingRec Times[(UnknownT+1)]; +uint32 BeeperOnTime, BeeperOffTime; + void InitMisc(void) { int8 i; @@ -88,18 +91,29 @@ DoBeep100mS(2, 8); DoBeep100mS(8,0); + } // DoStartingBeeps +void DoBeeperPulse1mS(int16 d) { + + if ( !F.BeeperInUse ) { + mS[BeeperTimeout] = mSClock() + 500L; + Beeper_ON; + } + +// BeeperOnTime = d; +// BeeperOffTime = 0x7ffffff; + +} // DoBeeperPulse1mS + void CheckAlarms(void) { - static uint16 BeeperOnTime, BeeperOffTime; - F.BeeperInUse = F.LowBatt || F.LostModel || (State == Shutdown); if ( F.BeeperInUse ) { if ( F.LowBatt ) { - BeeperOffTime = 750; - BeeperOnTime = 250; + BeeperOffTime = 500; + BeeperOnTime = 500; } else if ( State == Shutdown ) { BeeperOffTime = 4750; @@ -143,13 +157,9 @@ return (i); } // DecayX -void LPFilter(real32* i, real32* ip, real32 FilterF, real32 dT) { - static real32 FilterA; +real32 LPFilter(real32 i, real32 ip, real32 A) { - FilterA = dT / ( FilterF + dT ); - - *i = *ip + (*i - *ip) * FilterA; - *ip = *i; + return ( ip + (i - ip) * A ); } // LPFilter