Subversion Repositories FlightCtrl

Rev

Rev 1646 | Rev 1864 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 1646 Rev 1775
Line 23... Line 23...
23
    if(numberOfAxesInRange == 3 && i > 10) i = 9;
23
    if(numberOfAxesInRange == 3 && i > 10) i = 9;
24
    numberOfAxesInRange = 0;
24
    numberOfAxesInRange = 0;
Line 25... Line 25...
25
   
25
   
26
    for (axis=PITCH; axis<=YAW; axis++) {
26
    for (axis=PITCH; axis<=YAW; axis++) {
27
        if (axis==YAW) factor = GYRO_SUMMATION_FACTOR_YAW;
27
        if (axis==YAW) factor = GYRO_SUMMATION_FACTOR_YAW;
28
        else factor = GYRO_SUMMATION_FACTOR_PITCHROLL;
28
        else factor = GYRO_SUMMATION_FACTOR_PITCHROLL;
29
 
29
       
30
          if(rawGyroSum[axis] < factor * 510) DACValues[axis]--;
30
        if(rawGyroSum[axis] < 510 * factor) DACValues[axis]--;
31
          else if(rawGyroSum[axis] > limit * 515) DACValues[axis]++;
31
        else if(rawGyroSum[axis] >  515 * factor) DACValues[axis]++;
Line 32... Line 32...
32
      else numberOfAxesInRange++;
32
        else numberOfAxesInRange++;
33
   
33
   
34
      /* Gyro is defective. But do keep DAC within bounds (it's an op amp not a differential amp).
34
        /* Gyro is defective. But do keep DAC within bounds (it's an op amp not a differential amp). */
35
      if(DACValues[axis] < 10) {
35
        if(DACValues[axis] < 10) {
36
        DACValues[axis] = 10;
36
          DACValues[axis] = 10;
37
      } else if(DACValues[axis] > 245) {
37
        } else if(DACValues[axis] > 245) {
38
        DACValues[axis] = 245;
38
          DACValues[axis] = 245;
39
      }
39
        }
40
    }
40
    }
Line 41... Line 41...
41
 
41
   
42
    I2C_Start(TWI_STATE_GYRO_OFFSET_TX);   // initiate data transmission
42
    I2C_Start(TWI_STATE_GYRO_OFFSET_TX);   // initiate data transmission
43
   
43
   
44
    // Wait for I2C to finish transmission.
44
    // Wait for I2C to finish transmission.
45
    while(twi_state) {
45
    while(twi_state) {
46
      // Did it take too long?
46
      // Did it take too long?
47
      if(CheckDelay(timeout)) {
47
      if(CheckDelay(timeout)) {
48
        printf("\r\n DAC or I2C Error! check I2C, 3Vref, DAC, and BL-Ctrl");
48
        printf("\r\n DAC or I2C Error! check I2C, 3Vref, DAC, and BL-Ctrl");
Line 49... Line 49...
49
            break;
49
        break;
50
      }
50
      }
51
    }
51
    }
52
 
52
 
53
    analog_start();
53
    analog_start();
54
 
54
   
Line 55... Line 55...
55
    Delay_ms_Mess(i<10 ? 10 : 2);
55
    Delay_ms_Mess(i<10 ? 10 : 2);
56
  }
56
  }
57
  Delay_ms_Mess(70);
57
  Delay_ms_Mess(70);
58
}
58
}
59
 
59
 
Line 60... Line 60...
60
void gyro_setDefaults(void) {
60
void gyro_setDefaults(void) {
61
  staticParams.GyroD         = 3;
61
  staticParams.GyroD         = 3;
62
  staticParams.DriftComp     = 100;
62
  staticParams.DriftComp     = 250;
63
  staticParams.GyroAccFactor = 1;
63
  staticParams.GyroAccFactor = 10;