25,20 → 25,20 |
|
for (axis=PITCH; axis<=YAW; axis++) { |
if (axis==YAW) factor = GYRO_SUMMATION_FACTOR_YAW; |
else factor = GYRO_SUMMATION_FACTOR_PITCHROLL; |
|
if(rawGyroSum[axis] < factor * 510) DACValues[axis]--; |
else if(rawGyroSum[axis] > limit * 515) DACValues[axis]++; |
else numberOfAxesInRange++; |
else factor = GYRO_SUMMATION_FACTOR_PITCHROLL; |
|
if(rawGyroSum[axis] < 510 * factor) DACValues[axis]--; |
else if(rawGyroSum[axis] > 515 * factor) DACValues[axis]++; |
else numberOfAxesInRange++; |
|
/* Gyro is defective. But do keep DAC within bounds (it's an op amp not a differential amp). |
if(DACValues[axis] < 10) { |
DACValues[axis] = 10; |
} else if(DACValues[axis] > 245) { |
DACValues[axis] = 245; |
} |
/* Gyro is defective. But do keep DAC within bounds (it's an op amp not a differential amp). */ |
if(DACValues[axis] < 10) { |
DACValues[axis] = 10; |
} else if(DACValues[axis] > 245) { |
DACValues[axis] = 245; |
} |
} |
|
|
I2C_Start(TWI_STATE_GYRO_OFFSET_TX); // initiate data transmission |
|
// Wait for I2C to finish transmission. |
46,12 → 46,12 |
// Did it take too long? |
if(CheckDelay(timeout)) { |
printf("\r\n DAC or I2C Error! check I2C, 3Vref, DAC, and BL-Ctrl"); |
break; |
break; |
} |
} |
|
analog_start(); |
|
|
Delay_ms_Mess(i<10 ? 10 : 2); |
} |
Delay_ms_Mess(70); |
59,9 → 59,9 |
|
void gyro_setDefaults(void) { |
staticParams.GyroD = 3; |
staticParams.DriftComp = 100; |
staticParams.GyroAccFactor = 1; |
staticParams.GyroAccTrim = 5; |
staticParams.DriftComp = 250; |
staticParams.GyroAccFactor = 10; |
staticParams.GyroAccTrim = 1; |
|
// Not used. |
staticParams.AngleTurnOverPitch = 85; |