45 lines
833 B
C
45 lines
833 B
C
|
#ifndef _ROT_SPEED
|
||
|
#define _ROT_SPEED
|
||
|
|
||
|
#include "IQmathLib.h"
|
||
|
|
||
|
#define SENSORS_NUMBER 10
|
||
|
#define SENSORS_NUMBER_ONLY_IN 6
|
||
|
#define IMPULSES_PER_TURN (1LL << 13) //Old sensor
|
||
|
//#define IMPULSES_PER_TURN (1LL << 10) //New sensor
|
||
|
#define ANGLE_RESOLUTION (1LL << 18) //2^18
|
||
|
|
||
|
typedef struct
|
||
|
{
|
||
|
int direct_rotor;
|
||
|
int direct_rotor_in1;
|
||
|
int direct_rotor_in2;
|
||
|
int direct_rotor_angle;
|
||
|
union {
|
||
|
unsigned int sens_err1:1;
|
||
|
unsigned int sens_err2:1;
|
||
|
unsigned int reserved:14;
|
||
|
} error;
|
||
|
|
||
|
_iq iqFsensors[SENSORS_NUMBER];
|
||
|
|
||
|
_iq iqF;
|
||
|
_iq iqFout;
|
||
|
_iq iqFlong;
|
||
|
|
||
|
_iq iqFrotFromOptica;
|
||
|
|
||
|
unsigned int error_update_count;
|
||
|
} ROTOR_VALUE;
|
||
|
|
||
|
#define ROTOR_VALUE_DEFAULTS {0,0,0,0,0, {0,0,0,0,0,0,0,0},0,0,0,0,0}
|
||
|
|
||
|
extern ROTOR_VALUE rotor;
|
||
|
|
||
|
void Rotor_measure(void);
|
||
|
void rotorInit(void);
|
||
|
void update_rot_sensors();
|
||
|
|
||
|
#endif //_ROT_SPEED
|
||
|
|