0,0 → 1,40 |
#include "invenSense.h" |
#include "timer0.h" |
#include "configuration.h" |
|
#include <avr/io.h> |
|
/* |
* Configuration for my prototype board with InvenSense gyros. |
* The FC 1.3 board is installed upside down, therefore Z acc is reversed but not roll. |
*/ |
const uint8_t GYRO_REVERSED[3] = { 0, 0, 0 }; |
const uint8_t ACC_REVERSED[3] = { 0, 0, 1 }; |
const uint8_t AXIS_TRANSFORM = 0; |
|
#define AUTOZERO_PORT PORTD |
#define AUTOZERO_DDR DDRD |
#define AUTOZERO_BIT 5 |
|
void gyro_calibrate(void) { |
// If port not already set to output and high, do it. |
if (!(AUTOZERO_DDR & (1 << AUTOZERO_BIT)) || !(AUTOZERO_PORT & (1 |
<< AUTOZERO_BIT))) { |
AUTOZERO_PORT |= (1 << AUTOZERO_BIT); |
AUTOZERO_DDR |= (1 << AUTOZERO_BIT); |
delay_ms(100); |
} |
|
// Make a pulse on the auto-zero output line. |
AUTOZERO_PORT &= ~(1 << AUTOZERO_BIT); |
delay_ms(1); |
AUTOZERO_PORT |= (1 << AUTOZERO_BIT); |
// Delay_ms(10); |
delay_ms_Mess(100); |
} |
|
void gyro_setDefaults(void) { |
staticParams.GyroAccFactor = 1; |
staticParams.DriftComp = 3; |
staticParams.GyroAccTrim = 2; |
} |