Subversion Repositories FlightCtrl

Rev

Rev 2025 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | RSS feed

#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;
}