#ifndef REGISTER_H #define REGISTER_H #define SAVE 0x00 #define CALSW 0x01 #define RSW 0x02 #define RRATE 0x03 #define BAUD 0x04 #define AXOFFSET 0x05 #define AYOFFSET 0x06 #define AZOFFSET 0x07 #define GXOFFSET 0x08 #define GYOFFSET 0x09 #define GZOFFSET 0x0a #define HXOFFSET 0x0b #define HYOFFSET 0x0c #define HZOFFSET 0x0d #define D0MODE 0x0e #define D1MODE 0x0f #define D2MODE 0x10 #define D3MODE 0x11 #define D0PWMH 0x12 #define D1PWMH 0x13 #define D2PWMH 0x14 #define D3PWMH 0x15 #define D0PWMT 0x16 #define D1PWMT 0x17 #define D2PWMT 0x18 #define D3PWMT 0x19 #define IICADDR 0x1a #define LEDOFF 0x1b #define MAGRANGX 0x1c #define MAGRANGY 0x1d #define MAGRANGZ 0x1e #define BANDWIDTH 0x1f #define GYRORANGE 0x20 #define ACCRANGE 0x21 #define SLEEP 0x22 #define ORIENT 0x23 #define AXIS6 0x24 #define FILTK 0x25 #define GPSBAUD 0x26 #define READADDR 0x27 #define BWSCALE 0x28 #define MOVETHR 0x28 #define MOVESTA 0x29 #define ACCFILT 0x2A #define GYROFILT 0x2b #define MAGFILT 0x2c #define POWONSEND 0x2d #define VERSION 0x2e #define KEY 0x69 #define TIMEZONE 0x6B /* KEY */ #define KEY_UNLOCK 0xB588 /* SAVE */ #define SAVE_PARAM 0x00 #define SAVE_SWRST 0xFF /* algorithm */ enum ALGROITHM_ENUM { ALGROITHM9 = 0, ALGROITHM6 = 1 }; /* ORIENT */ enum ORIENT_ENUM { ORIENT_HORIZONTAL = 0, ORIENT_VERTICAL }; /* ORIENT */ enum POWONSEND_ENUM { CLOSE = 0, OPEN }; /* CALSW */ enum CAL_ENUM { EXIT = 0, GYROACC, MAGNETIC, ALTITUDE, ALANGLEZ }; #define EXITCAL 0x00 #define CALGYROACC 0x01 #define CALMAG 0x02 #define CALALTITUDE 0x03 #define CALANGLEZ 0x04 /* time zone */ enum TIMEZONE_ENUM { UTC_N12 = 0, UTC_N11, UTC_N10, UTC_N9, UTC_N8, UTC_N7, UTC_N6, UTC_N5, UTC_N4, UTC_N3, UTC_N2, UTC_N1, UTC, UTC_P1, UTC_P2, UTC_P3, UTC_P4, UTC_P5, UTC_P6, UTC_P7, UTC_P8,//default UTC_P9, UTC_P10, UTC_P11, UTC_P12 }; /* RETURN CONTENT */ #define SetBit(VAR, Place) (VAR |= (1 << Place)) #define ClrBit(VAR, Place) (VAR &= ((1 << Place) ^ 255)) enum RETURN_CONTENT_ENUM { //低位 TIME = 0, ACCELERATION, ANGULAR_VELOCITY, EULER_ANGLE, MAGNETIC_FIELD, PORT_STATUS, ATMOSPHERIC_PRESSURE_ALTITUDE, LATITUDE_LONGITUDE, //高位 GROUND_VELOCITY, QUATERNION,//四元数 SATELLITE_ACCURACY }; struct RETURN_CONTENT_STRUCT { //低位 bool time = false; bool acceleration = false; bool angular_velocity = false; bool euler_angle = false; bool magnetic_field = false; bool port_status = false; bool atmospheric_pressure_altitude = false; bool latitude_longitude = false; //高位 bool ground_velocity = false; bool quaternion = false; bool satellite_accuracy = false; }; /* BAUD */ enum BAUD_ENUM { WIT_BAUD_2400 = 0, WIT_BAUD_4800, WIT_BAUD_9600,//default WIT_BAUD_19200, WIT_BAUD_38400, WIT_BAUD_57600, WIT_BAUD_115200, WIT_BAUD_230400, WIT_BAUD_460800, WIT_BAUD_921600 }; /**RRATE*****/ enum RRATE_ENUM { RRATE_01HZ = 1, RRATE_05HZ, RRATE_1HZ, RRATE_2HZ, RRATE_5HZ, RRATE_10HZ,//default RRATE_20HZ, RRATE_50HZ, RRATE_100HZ, RRATE_NONE,//保留 RRATE_200HZ, RRATE_ONCE }; /* 端口模式 */ enum MODEL_D0_D2_D3_ENUM { AIN = 0,//default DIN, DOH, DOL, PWM }; enum MODEL_D1_ENUM { AIN_D1 = 0,//default DIN_D1, DOH_D1, DOL_D1, PWM_D1, CLR_D1 }; #endif // REGISTER_H