interface to chr_6dm and Baro bmp085

Dependencies:   mbed

Committer:
belloula
Date:
Mon Oct 17 19:43:06 2011 +0000
Revision:
0:d07617f8ede9

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
belloula 0:d07617f8ede9 1 #include "mbed.h"
belloula 0:d07617f8ede9 2
belloula 0:d07617f8ede9 3
belloula 0:d07617f8ede9 4 // Null packet
belloula 0:d07617f8ede9 5
belloula 0:d07617f8ede9 6 #define NO_DATA = 0x00;
belloula 0:d07617f8ede9 7 #define FAILED_CHECKSUM = 0x01;
belloula 0:d07617f8ede9 8
belloula 0:d07617f8ede9 9
belloula 0:d07617f8ede9 10 int packet[100];
belloula 0:d07617f8ede9 11 int packet_length = 0;
belloula 0:d07617f8ede9 12
belloula 0:d07617f8ede9 13 // Tx packet types (responses)
belloula 0:d07617f8ede9 14
belloula 0:d07617f8ede9 15
belloula 0:d07617f8ede9 16 const int SET_ACTIVE_CHANNELS = 0x80;
belloula 0:d07617f8ede9 17 const int SET_SILENT_MODE = 0x81;
belloula 0:d07617f8ede9 18 const int SET_BROADCAST_MODE = 0x82;
belloula 0:d07617f8ede9 19 const int SET_GYRO_BIAS = 0x83;
belloula 0:d07617f8ede9 20 const int SET_ACCEL_BIAS = 0x84;
belloula 0:d07617f8ede9 21 const int SET_ACCEL_REF_VECTOR = 0x85;
belloula 0:d07617f8ede9 22 const int AUTO_SET_ACCEL_REF = 0x86;
belloula 0:d07617f8ede9 23 const int ZERO_RATE_GYROS = 0x87;
belloula 0:d07617f8ede9 24 const int SELF_TEST = 0x88;
belloula 0:d07617f8ede9 25 const int SET_START_CAL = 0x89;
belloula 0:d07617f8ede9 26 const int SET_PROCESS_COVARIANCE = 0x8A;
belloula 0:d07617f8ede9 27 const int SET_MAG_COVARIANCE = 0x8B;
belloula 0:d07617f8ede9 28 const int SET_ACCEL_COVARIANCE = 0x8C;
belloula 0:d07617f8ede9 29 const int SET_EKF_CONFIG = 0x8D;
belloula 0:d07617f8ede9 30 const int SET_GYRO_ALIGNMENT = 0x8E;
belloula 0:d07617f8ede9 31 const int SET_ACCEL_ALIGNMENT = 0x8F;
belloula 0:d07617f8ede9 32 const int SET_MAG_REF_VECTOR = 0x90;
belloula 0:d07617f8ede9 33 const int AUTO_SET_MAG_REF = 0x91;
belloula 0:d07617f8ede9 34 const int SET_MAG_CAL = 0x92;
belloula 0:d07617f8ede9 35 const int SET_MAG_BIAS = 0x93;
belloula 0:d07617f8ede9 36 const int SET_GYRO_SCALE = 0x94;
belloula 0:d07617f8ede9 37 const int EKF_RESET = 0x95;
belloula 0:d07617f8ede9 38 const int RESET_TO_FACTORY = 0x96;
belloula 0:d07617f8ede9 39 const int WRITE_TO_FLASH = 0xA0;
belloula 0:d07617f8ede9 40 const int GET_DATA = 0x01;
belloula 0:d07617f8ede9 41 const int GET_ACTIVE_CHANNELS = 0x02;
belloula 0:d07617f8ede9 42 const int GET_BROADCAST_MODE = 0x03;
belloula 0:d07617f8ede9 43 const int GET_ACCEL_BIAS = 0x04;
belloula 0:d07617f8ede9 44 const int GET_ACCEL_REF_VECTOR = 0x05;
belloula 0:d07617f8ede9 45 const int GET_GYRO_BIAS = 0x06;
belloula 0:d07617f8ede9 46 const int GET_GYRO_SCALE = 0x07;
belloula 0:d07617f8ede9 47 const int GET_START_CAL = 0x08;
belloula 0:d07617f8ede9 48 const int GET_EKF_CONFIG = 0x09;
belloula 0:d07617f8ede9 49 const int GET_ACCEL_COVARIANCE = 0x0A;
belloula 0:d07617f8ede9 50 const int GET_MAG_COVARIANCE = 0x0B;
belloula 0:d07617f8ede9 51 const int GET_PROCESS_COVARIANCE = 0x0C;
belloula 0:d07617f8ede9 52 const int GET_STATE_COVARIANCE = 0x0D;
belloula 0:d07617f8ede9 53 const int GET_GYRO_ALIGNMENT = 0x0E;
belloula 0:d07617f8ede9 54 const int GET_ACCEL_ALIGNMENT = 0x0F;
belloula 0:d07617f8ede9 55 const int GET_MAG_REF_VECTOR = 0x10;
belloula 0:d07617f8ede9 56 const int GET_MAG_CAL = 0x11;
belloula 0:d07617f8ede9 57 const int GET_MAG_BIAS = 0x12;
belloula 0:d07617f8ede9 58
belloula 0:d07617f8ede9 59 // Board status and data packets
belloula 0:d07617f8ede9 60 #define PT_COMMAND_COMPLETE 0xB0
belloula 0:d07617f8ede9 61 #define PT_COMMAND_FAILED 0xB1
belloula 0:d07617f8ede9 62 #define PT_BAD_CHECKSUM 0xB2
belloula 0:d07617f8ede9 63 #define PT_BAD_DATA_LENGTH 0xB3
belloula 0:d07617f8ede9 64 #define PT_UNRECOGNIZED_PACKET 0xB4
belloula 0:d07617f8ede9 65 #define PT_BUFFER_OVERFLOW 0xB5
belloula 0:d07617f8ede9 66 #define PT_STATUS_REPORT 0xB6
belloula 0:d07617f8ede9 67 #define PT_SENSOR_DATA 0xB7
belloula 0:d07617f8ede9 68 #define PT_GYRO_BIAS_REPORT 0xB8
belloula 0:d07617f8ede9 69 #define PT_GYRO_SCALE_REPORT 0xB9
belloula 0:d07617f8ede9 70 #define PT_START_CAL_REPORT 0xBA
belloula 0:d07617f8ede9 71 #define PT_ACCEL_BIAS_REPORT 0xBB
belloula 0:d07617f8ede9 72 #define PT_ACCEL_REF_VECTOR_REPORT 0xBC
belloula 0:d07617f8ede9 73 #define PT_ACTIVE_CHANNEL_REPORT 0xBD
belloula 0:d07617f8ede9 74 #define PT_ACCEL_COVARIANCE_REPORT 0xBE
belloula 0:d07617f8ede9 75 #define PT_MAG_COVARIANCE_REPORT 0xBF
belloula 0:d07617f8ede9 76 #define PT_PROCESS_COVARIANCE_REPORT 0xC0
belloula 0:d07617f8ede9 77 #define PT_STATE_COVARIANCE_REPORT 0xC1
belloula 0:d07617f8ede9 78 #define PT_EKF_CONFIG_REPORT 0xC2
belloula 0:d07617f8ede9 79 #define PT_GYRO_ALIGNMENT_REPORT 0xC3
belloula 0:d07617f8ede9 80 #define PT_ACCEL_ALIGNMENT_REPORT 0xC4
belloula 0:d07617f8ede9 81 #define PT_MAG_REF_VECTOR_REPORT 0xC5
belloula 0:d07617f8ede9 82 #define PT_MAG_CAL_REPORT 0xC6
belloula 0:d07617f8ede9 83 #define PT_MAG_BIAS_REPORT 0xC7
belloula 0:d07617f8ede9 84 #define PT_BROADCAST_MODE_REPORT 0xC8
belloula 0:d07617f8ede9 85
belloula 0:d07617f8ede9 86
belloula 0:d07617f8ede9 87 /* D1 */
belloula 0:d07617f8ede9 88 #define YAW_FLAG 0x80
belloula 0:d07617f8ede9 89 #define PITCH_FLAG 0x40
belloula 0:d07617f8ede9 90 #define ROLL_FLAG 0x20
belloula 0:d07617f8ede9 91 #define YAW_RATE_FLAG 0x10
belloula 0:d07617f8ede9 92 #define PITCH_RATE_FLAG 0x08
belloula 0:d07617f8ede9 93 #define ROLL_RATE_FLAG 0x04
belloula 0:d07617f8ede9 94 #define MX_FLAG 0x02
belloula 0:d07617f8ede9 95 #define MY_FLAG 0x01
belloula 0:d07617f8ede9 96 /* D2 */
belloula 0:d07617f8ede9 97 #define MZ_FLAG 0x80
belloula 0:d07617f8ede9 98 #define GX_FLAG 0x40
belloula 0:d07617f8ede9 99 #define GY_FLAG 0x20
belloula 0:d07617f8ede9 100 #define GZ_FLAG 0x10
belloula 0:d07617f8ede9 101 #define AX_FLAG 0x08
belloula 0:d07617f8ede9 102 #define AY_FLAG 0x04
belloula 0:d07617f8ede9 103 #define AZ_FLAG 0x02
belloula 0:d07617f8ede9 104 #define ZERO_FLAG 0x01
belloula 0:d07617f8ede9 105
belloula 0:d07617f8ede9 106
belloula 0:d07617f8ede9 107 /* Scale factors
belloula 0:d07617f8ede9 108 const double SCALE_YAW = 0.0109863; // �/LSB
belloula 0:d07617f8ede9 109 const double SCALE_PITCH = 0.0109863;
belloula 0:d07617f8ede9 110 const double SCALE_ROLL = 0.0109863;
belloula 0:d07617f8ede9 111 const double SCALE_YAW_RATE = 0.0137329; // �/s/LSB
belloula 0:d07617f8ede9 112 const double SCALE_PITCH_RATE = 0.0137329;
belloula 0:d07617f8ede9 113 const double SCALE_ROLL_RATE = 0.0137329;
belloula 0:d07617f8ede9 114 const double SCALE_MAG_X = 0.061035; // mGauss/LSB
belloula 0:d07617f8ede9 115 const double SCALE_MAG_Y = 0.061035;
belloula 0:d07617f8ede9 116 const double SCALE_MAG_Z = 0.061035;
belloula 0:d07617f8ede9 117 const double SCALE_GYRO_X = 0.01812; // �/s/LSB
belloula 0:d07617f8ede9 118 const double SCALE_GYRO_Y = 0.01812;
belloula 0:d07617f8ede9 119 const double SCALE_GYRO_Z = 0.01812;
belloula 0:d07617f8ede9 120 const double SCALE_ACCEL_X = 0.106812; // mg/LSB
belloula 0:d07617f8ede9 121 const double SCALE_ACCEL_Y = 0.106812;
belloula 0:d07617f8ede9 122 const double SCALE_ACCEL_Z = 0.106812;*/
belloula 0:d07617f8ede9 123
belloula 0:d07617f8ede9 124 const char PACKET_HEADER[] = {'s','n','p'};
belloula 0:d07617f8ede9 125 const int HEADER_CHECKSUM = 's'+'n'+'p';
belloula 0:d07617f8ede9 126
belloula 0:d07617f8ede9 127
belloula 0:d07617f8ede9 128
belloula 0:d07617f8ede9 129
belloula 0:d07617f8ede9 130
belloula 0:d07617f8ede9 131 #define MAX_BYTES 32
belloula 0:d07617f8ede9 132 enum _states { WAIT_s, WAIT_n, WAIT_p,PT, N, RX_PACKET, PROCESS_PACKET };
belloula 0:d07617f8ede9 133