Subversion Repositories NaviCtrl

Rev

Rev 342 | Blame | Compare with Previous | Last modification | View Log | RSS feed

#ifndef _COMPASS_H
#define _COMPASS_H

typedef struct
{
  s16 X;
  s16 Y;
  s16 Z;
} __attribute__((packed)) s16vec_t;

extern volatile s16vec_t MagVector;       // current magnetic field vector
extern volatile s16 Compass_Heading;  // current heading direction
extern volatile u8  Compass_CalState; // current calibration state
extern s32 EarthMagneticField;
extern s32 EarthMagneticInclination;
extern s32 EarthMagneticInclinationFiltered;
extern s32 EarthMagneticInclinationTheoretic;
extern s32 EarthMagneticFieldFiltered;
extern u8  ErrorDisturbedEarthMagnetField;
extern s16 EarthMagneticStrengthTheoretic;
extern s16 Hx, Hy;

#define COMPASS_NONE    0
#define COMPASS_MK3MAG  1
#define COMPASS_NCMAG   2
extern u8 Compass_Device;

void Compass_Init(void);
void Compass_Update(void);
void Compass_CalcHeading(void);
void Compass_SetCalState(u8 CalState);
void Compass_UpdateCalState(void);

#endif  //  _COMPASS_H