dd

Dependencies:   C12832 LM75B mbed

Committer:
pfe
Date:
Tue Apr 21 10:16:20 2015 +0000
Revision:
0:05a20e3e3179
dd

Who changed what in which revision?

UserRevisionLine numberNew contents of line
pfe 0:05a20e3e3179 1 #include "mbed.h"
pfe 0:05a20e3e3179 2 #include "C12832.h"
pfe 0:05a20e3e3179 3 #include "MSCFileSystem.h"
pfe 0:05a20e3e3179 4 //-----------------------
pfe 0:05a20e3e3179 5 #include "Define.h"
pfe 0:05a20e3e3179 6 #include "RecGPS.h"
pfe 0:05a20e3e3179 7 //-----------------------
pfe 0:05a20e3e3179 8 MSCFileSystem fsLog("USB"); // Enregsetement des doonées "Flash Disque USB"
pfe 0:05a20e3e3179 9 FILE *Fs_Log;
pfe 0:05a20e3e3179 10 I2C _I2C(p28,p27); // I2C SCL,SDA
pfe 0:05a20e3e3179 11 Serial _ComGPS(p13, p14); // TX non connecté, pin14 RX.
pfe 0:05a20e3e3179 12 Serial _ComXbee(p9,p10); // Serial tx(p9),rx(10)
pfe 0:05a20e3e3179 13 #define pRST_Xbee p30 // pin RST Xbee
pfe 0:05a20e3e3179 14 Ticker _Ticker5ms;
pfe 0:05a20e3e3179 15 Timer _Timer1; // Timer pour mesurer le temps
pfe 0:05a20e3e3179 16
pfe 0:05a20e3e3179 17 DigitalIn boutonStart(p13); // Joystique Left : Boutton pour pouvoir controler le debut de l'enregistrement
pfe 0:05a20e3e3179 18 DigitalIn boutonEnd(p16); // Joystique Right : Boutton pour pouvoir controler la fin de l'enregistrement
pfe 0:05a20e3e3179 19
pfe 0:05a20e3e3179 20 DigitalOut RSTXbee (p30);
pfe 0:05a20e3e3179 21 DigitalOut LedGPS (LED1);
pfe 0:05a20e3e3179 22 DigitalOut LedLog (LED2);
pfe 0:05a20e3e3179 23 DigitalOut LedXbee (LED3);
pfe 0:05a20e3e3179 24 DigitalOut LedError(LED4);
pfe 0:05a20e3e3179 25 //-----------------------
pfe 0:05a20e3e3179 26 StructGPS GPS;
pfe 0:05a20e3e3179 27 unsigned long TimeBtpress=0,TIMER_10ms;
pfe 0:05a20e3e3179 28 unsigned long FileIndex;
pfe 0:05a20e3e3179 29 char Txt[16],Txt_Log[100],Txt_Tx2GSC[100],DataLogFileName[32];
pfe 0:05a20e3e3179 30 unsigned long tk1; // des variables pour stocker les temps de mesure
pfe 0:05a20e3e3179 31 //----------------------------------- Reception des données GPS 10Hz
pfe 0:05a20e3e3179 32 void AutoMat_GPS(){
pfe 0:05a20e3e3179 33 static unsigned char i=0,j=0,GPSDataType=0,ET_AutoMat_GPS=ET_01;
pfe 0:05a20e3e3179 34 static char gps_mess;
pfe 0:05a20e3e3179 35 while(_ComGPS.readable()){
pfe 0:05a20e3e3179 36 gps_mess=_ComGPS.getc();
pfe 0:05a20e3e3179 37
pfe 0:05a20e3e3179 38 switch(ET_AutoMat_GPS){
pfe 0:05a20e3e3179 39 case ET_01: if(gps_mess==prompt$GP[i]){
pfe 0:05a20e3e3179 40 i++;
pfe 0:05a20e3e3179 41 if(i==3){
pfe 0:05a20e3e3179 42 i=0;
pfe 0:05a20e3e3179 43 j=0;
pfe 0:05a20e3e3179 44 ET_AutoMat_GPS=ET_02;
pfe 0:05a20e3e3179 45 }
pfe 0:05a20e3e3179 46 }else i=0;
pfe 0:05a20e3e3179 47 break;
pfe 0:05a20e3e3179 48 case ET_02: if(gps_mess==promptGGA[i]){
pfe 0:05a20e3e3179 49 i++;
pfe 0:05a20e3e3179 50 if(i==3){
pfe 0:05a20e3e3179 51 i=0;
pfe 0:05a20e3e3179 52 j=0;
pfe 0:05a20e3e3179 53 ET_AutoMat_GPS = ET_03;
pfe 0:05a20e3e3179 54 GPSDataType = GGA;
pfe 0:05a20e3e3179 55 }
pfe 0:05a20e3e3179 56 break;
pfe 0:05a20e3e3179 57 }else i=0;
pfe 0:05a20e3e3179 58
pfe 0:05a20e3e3179 59 if(gps_mess==promptRMC[j]){
pfe 0:05a20e3e3179 60 j++;
pfe 0:05a20e3e3179 61 if(j==3){
pfe 0:05a20e3e3179 62 j=0;
pfe 0:05a20e3e3179 63 ET_AutoMat_GPS=ET_03;
pfe 0:05a20e3e3179 64 GPSDataType=RMC;
pfe 0:05a20e3e3179 65 }
pfe 0:05a20e3e3179 66 break;
pfe 0:05a20e3e3179 67 }else j=0;
pfe 0:05a20e3e3179 68
pfe 0:05a20e3e3179 69 ET_AutoMat_GPS=ET_01;
pfe 0:05a20e3e3179 70 break;
pfe 0:05a20e3e3179 71
pfe 0:05a20e3e3179 72 case ET_03: _MsgGPSRx[i]=gps_mess;
pfe 0:05a20e3e3179 73 i++;
pfe 0:05a20e3e3179 74 if((i<NData_GPS_Max)&&(gps_mess!=0x0D))break;
pfe 0:05a20e3e3179 75
pfe 0:05a20e3e3179 76 switch(GPSDataType){
pfe 0:05a20e3e3179 77
pfe 0:05a20e3e3179 78 case GGA: DecodageGPGGA(i-1);// l'appel de la fonction de decodage du message GPGGA
pfe 0:05a20e3e3179 79 LedGPS=!LedGPS;
pfe 0:05a20e3e3179 80 if (GpsData.GGA_Valid==0x01){
pfe 0:05a20e3e3179 81 GpsData.GGA_Valid=0x00;
pfe 0:05a20e3e3179 82 GPS=GpsData;
pfe 0:05a20e3e3179 83 }
pfe 0:05a20e3e3179 84 break;
pfe 0:05a20e3e3179 85 case RMC: //DecodageGPRMC(i-1);// l'appel de la fonction de decodage du message GPGGA //DecodageGPRMC(i-1);
pfe 0:05a20e3e3179 86 break;
pfe 0:05a20e3e3179 87 default: break;
pfe 0:05a20e3e3179 88 }
pfe 0:05a20e3e3179 89 ET_AutoMat_GPS=ET_01;
pfe 0:05a20e3e3179 90 GPSDataType=0;
pfe 0:05a20e3e3179 91 default : break;
pfe 0:05a20e3e3179 92 }
pfe 0:05a20e3e3179 93 }
pfe 0:05a20e3e3179 94 }
pfe 0:05a20e3e3179 95 //----------------------------------- Transmission données au sol 10 packet/s
pfe 0:05a20e3e3179 96 void AutoMat_Xbee_Tx(){
pfe 0:05a20e3e3179 97 switch (ET_AutoMat_Xbee_Tx) {
pfe 0:05a20e3e3179 98 case ET_01:
pfe 0:05a20e3e3179 99 LedXbee = !LedXbee;
pfe 0:05a20e3e3179 100 sprintf(Txt_Tx2GSC,"$GPS;%lu;%lu;",OldTimer_10ms,GPS.Qual);
pfe 0:05a20e3e3179 101 _ComXbee.printf("%s",Txt_Tx2GSC);
pfe 0:05a20e3e3179 102 ET_AutoMat_Xbee_Tx = ET_02;
pfe 0:05a20e3e3179 103 break;
pfe 0:05a20e3e3179 104 case ET_02 :
pfe 0:05a20e3e3179 105 sprintf(Txt_Tx2GSC,"%2u:%2u:%2u;",GPS.hh,GPS.mm,GPS.ss);
pfe 0:05a20e3e3179 106 _ComXbee.printf("%s",Txt_Tx2GSC);
pfe 0:05a20e3e3179 107 ET_AutoMat_Xbee_Tx = ET_03;
pfe 0:05a20e3e3179 108 break;
pfe 0:05a20e3e3179 109 case ET_03 :
pfe 0:05a20e3e3179 110 sprintf(Txt_Tx2GSC,"%2u;%2u.%u;%c;",GPS.LatDeg,GPS.LatMin,GPS.Latmmmm,GPS.LatDir);
pfe 0:05a20e3e3179 111 _ComXbee.printf("%s",Txt_Tx2GSC);
pfe 0:05a20e3e3179 112 ET_AutoMat_Xbee_Tx = ET_04;
pfe 0:05a20e3e3179 113 break;
pfe 0:05a20e3e3179 114 case ET_04 :
pfe 0:05a20e3e3179 115 sprintf(Txt_Tx2GSC,"%3u;%2u.%u;%c;",GPS.LongDeg,GPS.LongMin,GPS.Longmmmm,GPS.LongDir);
pfe 0:05a20e3e3179 116 _ComXbee.printf("%s",Txt_Tx2GSC);
pfe 0:05a20e3e3179 117 ET_AutoMat_Xbee_Tx = ET_05;
pfe 0:05a20e3e3179 118 break;
pfe 0:05a20e3e3179 119 case ET_05 :
pfe 0:05a20e3e3179 120 sprintf(Txt_Tx2GSC,"%c%u\r\n",GPS.SignHMSL,GPS.HMSL);
pfe 0:05a20e3e3179 121 _ComXbee.printf("%s",Txt_Tx2GSC);
pfe 0:05a20e3e3179 122 ET_AutoMat_Xbee_Tx = ET_06;
pfe 0:05a20e3e3179 123 break;
pfe 0:05a20e3e3179 124 //------------
pfe 0:05a20e3e3179 125 case ET_06 :
pfe 0:05a20e3e3179 126 sprintf(Txt_Tx2GSC,"$PDV;%lu;%4u;%4u;%4u;%4d\r\n",OldTimer_10ms,OldCAP,OldALT,OldTAS,OldTEMPRE);
pfe 0:05a20e3e3179 127 _ComXbee.printf("%s",Txt_Tx2GSC);
pfe 0:05a20e3e3179 128 ET_AutoMat_Xbee_Tx = ET_00;
pfe 0:05a20e3e3179 129 break;
pfe 0:05a20e3e3179 130 default: ET_AutoMat_Xbee_Tx=ET_00; break;
pfe 0:05a20e3e3179 131 }
pfe 0:05a20e3e3179 132 }
pfe 0:05a20e3e3179 133 //----------------------------------- LogData 100Hz, LogGPS 10Hz
pfe 0:05a20e3e3179 134 void AutoMat_DataLog(){
pfe 0:05a20e3e3179 135 switch (ET_AutoMat_DataLog){
pfe 0:05a20e3e3179 136
pfe 0:05a20e3e3179 137 case ET_01:
pfe 0:05a20e3e3179 138 LedLog=!LedLog;
pfe 0:05a20e3e3179 139 //--------------
pfe 0:05a20e3e3179 140 OldTimer_10ms = TIMER_10ms;
pfe 0:05a20e3e3179 141 // au max 100us (0.1ms)
pfe 0:05a20e3e3179 142 sprintf(Txt_Log,"PDV;%lu;%5d;%5d;%5d;%5d\r\n",TIMER_10ms,CAP,ALT,TAS,TEMPRE);
pfe 0:05a20e3e3179 143 // au max 5000 us (5ms)
pfe 0:05a20e3e3179 144 fprintf(Fs_Log,Txt_Log);
pfe 0:05a20e3e3179 145 // 100us
pfe 0:05a20e3e3179 146 sprintf(Txt_Log,"GPS;%lu;%1u;%2u:%2u:%2u;%2u;%2u.%u;%c;%3u;%2u.%u;%c;%c%u\r\n",TIMER_10ms,GPS.Qual,GPS.hh,GPS.mm,GPS.ss,GPS.LatDeg,GPS.LatMin,GPS.Latmmmm,GPS.LatDir,GPS.LongDeg,GPS.LongMin,GPS.Longmmmm,GPS.LongDir,GPS.SignHMSL,GPS.HMSL);
pfe 0:05a20e3e3179 147 // au max 5 ms
pfe 0:05a20e3e3179 148 fprintf(Fs_Log,Txt_Log);
pfe 0:05a20e3e3179 149 //------------------
pfe 0:05a20e3e3179 150 ET_AutoMat_DataLog++;
pfe 0:05a20e3e3179 151 break;
pfe 0:05a20e3e3179 152 case ET_02:
pfe 0:05a20e3e3179 153 case ET_03:
pfe 0:05a20e3e3179 154 case ET_04:
pfe 0:05a20e3e3179 155 case ET_05:
pfe 0:05a20e3e3179 156 case ET_06:
pfe 0:05a20e3e3179 157 case ET_07:
pfe 0:05a20e3e3179 158 case ET_08:
pfe 0:05a20e3e3179 159 case ET_09:
pfe 0:05a20e3e3179 160 case ET_10:
pfe 0:05a20e3e3179 161 // au max 100us (0.1ms)
pfe 0:05a20e3e3179 162 sprintf(Txt_Log,"PDV;%lu;%5d;%5d;%5d;%5d\r\n",TIMER_10ms,CAP,ALT,TAS,TEMPRE);
pfe 0:05a20e3e3179 163 // au max 5000 us (5ms)
pfe 0:05a20e3e3179 164 fprintf(Fs_Log,Txt_Log);
pfe 0:05a20e3e3179 165 break;
pfe 0:05a20e3e3179 166
pfe 0:05a20e3e3179 167 default: break ;
pfe 0:05a20e3e3179 168 }
pfe 0:05a20e3e3179 169 }
pfe 0:05a20e3e3179 170 //------------------------------------------ Sansors
pfe 0:05a20e3e3179 171 void AutoMat_ALT_EAGLE_V4(){
pfe 0:05a20e3e3179 172 static char L_i2c_Data[2],error;
pfe 0:05a20e3e3179 173 switch (ET_AutoMat_ALT) {
pfe 0:05a20e3e3179 174 case ET_01 :
pfe 0:05a20e3e3179 175 L_i2c_Data[0] = 0x07; // Send "register number" command to sensor
pfe 0:05a20e3e3179 176 error = _I2C.write(Add_Sensor_ALT_EG4, L_i2c_Data, 1,true); // Send command string
pfe 0:05a20e3e3179 177 if (error==0) ET_AutoMat_ALT = ET_02;
pfe 0:05a20e3e3179 178 break;
pfe 0:05a20e3e3179 179 case ET_02 :
pfe 0:05a20e3e3179 180 error = _I2C.read(Add_Sensor_ALT_EG4, L_i2c_Data, 2, true);
pfe 0:05a20e3e3179 181 if (error==0) {
pfe 0:05a20e3e3179 182 ALT = *((unsigned short*)L_i2c_Data)&0xffff; //altitude en décimètre
pfe 0:05a20e3e3179 183 ALT = ALT-3000;
pfe 0:05a20e3e3179 184 }
pfe 0:05a20e3e3179 185 ET_AutoMat_ALT = ET_01;
pfe 0:05a20e3e3179 186 break;
pfe 0:05a20e3e3179 187 default : break;
pfe 0:05a20e3e3179 188 }
pfe 0:05a20e3e3179 189 }
pfe 0:05a20e3e3179 190
pfe 0:05a20e3e3179 191 void AutoMat_TAS_EAGLE_V4(){
pfe 0:05a20e3e3179 192 static char L_i2c_Data[2],error;
pfe 0:05a20e3e3179 193 switch (ET_AutoMat_TAS) {
pfe 0:05a20e3e3179 194 case ET_01 :
pfe 0:05a20e3e3179 195 L_i2c_Data[0] = 0x07; // Send "register number" command to sensor
pfe 0:05a20e3e3179 196 error = _I2C.write(Add_Sensor_TAS_EG4, L_i2c_Data, 1,true); // Send command string
pfe 0:05a20e3e3179 197 if (error==0) ET_AutoMat_TAS = ET_02;
pfe 0:05a20e3e3179 198 break;
pfe 0:05a20e3e3179 199 case ET_02 :
pfe 0:05a20e3e3179 200 error = _I2C.read(Add_Sensor_TAS_EG4, L_i2c_Data, 2, true);
pfe 0:05a20e3e3179 201 if (error==0) {
pfe 0:05a20e3e3179 202 TAS = *((unsigned short*)L_i2c_Data)&0xffff; //altitude en décimètre
pfe 0:05a20e3e3179 203 TAS = sqrt((float)(TAS-offset_TAS)*5.87755102);
pfe 0:05a20e3e3179 204 }
pfe 0:05a20e3e3179 205 ET_AutoMat_TAS = ET_01;
pfe 0:05a20e3e3179 206 break;
pfe 0:05a20e3e3179 207 default : break;
pfe 0:05a20e3e3179 208 }
pfe 0:05a20e3e3179 209 }
pfe 0:05a20e3e3179 210 void AutoMat_CAP_HMC(){
pfe 0:05a20e3e3179 211 static char L_i2c_Data[2],error;
pfe 0:05a20e3e3179 212 switch (ET_AutoMat_CAP) {
pfe 0:05a20e3e3179 213 case ET_01 :
pfe 0:05a20e3e3179 214 L_i2c_Data[0] = 0x07; // Send "register number" command to sensor
pfe 0:05a20e3e3179 215 error = _I2C.write(Add_Sensor_CAP_HMC, L_i2c_Data, 1,true); // Send command string
pfe 0:05a20e3e3179 216 if (error==0) ET_AutoMat_CAP = ET_02;
pfe 0:05a20e3e3179 217 break;
pfe 0:05a20e3e3179 218 case ET_02 :
pfe 0:05a20e3e3179 219 error = _I2C.read(Add_Sensor_CAP_HMC , L_i2c_Data, 2, true);
pfe 0:05a20e3e3179 220 if (error==0) {
pfe 0:05a20e3e3179 221 CAP = *((unsigned short*)L_i2c_Data)&0xffff; //altitude en décimètre
pfe 0:05a20e3e3179 222 }
pfe 0:05a20e3e3179 223 ET_AutoMat_CAP = ET_01;
pfe 0:05a20e3e3179 224 break;
pfe 0:05a20e3e3179 225 default : break;
pfe 0:05a20e3e3179 226 }
pfe 0:05a20e3e3179 227 }
pfe 0:05a20e3e3179 228 //-------------------
pfe 0:05a20e3e3179 229 void Sansors_Init(){
pfe 0:05a20e3e3179 230 char L_i2c_Data[3];
pfe 0:05a20e3e3179 231 //------------ init Compass HMC //Continuous mode, periodic set/reset, 20Hz measurement rate.
pfe 0:05a20e3e3179 232 L_i2c_Data[0] = HMC6352_CONTINUOUS;
pfe 0:05a20e3e3179 233 L_i2c_Data[1] = 0x01;
pfe 0:05a20e3e3179 234 L_i2c_Data[2] = 20;
pfe 0:05a20e3e3179 235 _I2C.write(Add_Sensor_CAP_HMC,L_i2c_Data,3); // Send command
pfe 0:05a20e3e3179 236 //----------------------------
pfe 0:05a20e3e3179 237 wait_ms(1); //attendre 1mS
pfe 0:05a20e3e3179 238 //------------- Get Offset TAS
pfe 0:05a20e3e3179 239 L_i2c_Data[0] = 0x01; // Send "read data" command to sensor
pfe 0:05a20e3e3179 240 _I2C.write(Add_Sensor_TAS_EG4,L_i2c_Data,1); // Send command string
pfe 0:05a20e3e3179 241 wait_ms(1); //attendre 400µS avant de relancer
pfe 0:05a20e3e3179 242 _I2C.read(Add_Sensor_TAS_EG4,L_i2c_Data, 2);
pfe 0:05a20e3e3179 243 offset_TAS = *((unsigned short*)L_i2c_Data)&0xffff; // Altitude en décimètre
pfe 0:05a20e3e3179 244 }
pfe 0:05a20e3e3179 245
pfe 0:05a20e3e3179 246 void Irq05ms(){
pfe 0:05a20e3e3179 247 static unsigned char L_Flag_Timer=0, LTIMER005ms=0,LTIMER010ms=0;
pfe 0:05a20e3e3179 248 LTIMER005ms++;
pfe 0:05a20e3e3179 249 L_Flag_Timer = 1;
pfe 0:05a20e3e3179 250 //-----------------------------
pfe 0:05a20e3e3179 251 if(LTIMER005ms >= 2){
pfe 0:05a20e3e3179 252 //-----------------
pfe 0:05a20e3e3179 253 TIMER_10ms = TIMER_10ms+1;
pfe 0:05a20e3e3179 254 LTIMER005ms = 0;
pfe 0:05a20e3e3179 255 LTIMER010ms++;
pfe 0:05a20e3e3179 256 L_Flag_Timer = 2;
pfe 0:05a20e3e3179 257 //-----------------
pfe 0:05a20e3e3179 258 if(LTIMER010ms >= 10){
pfe 0:05a20e3e3179 259 LTIMER010ms = 0;
pfe 0:05a20e3e3179 260 L_Flag_Timer = 3;
pfe 0:05a20e3e3179 261 }
pfe 0:05a20e3e3179 262 //-----------------
pfe 0:05a20e3e3179 263 }
pfe 0:05a20e3e3179 264
pfe 0:05a20e3e3179 265 AutoMat_ALT_EAGLE_V4();
pfe 0:05a20e3e3179 266 AutoMat_TAS_EAGLE_V4();
pfe 0:05a20e3e3179 267 AutoMat_CAP_HMC();
pfe 0:05a20e3e3179 268
pfe 0:05a20e3e3179 269 if (Flag_Timer != 0xFF) Flag_Timer = L_Flag_Timer;
pfe 0:05a20e3e3179 270 //-----------------------------
pfe 0:05a20e3e3179 271 }
pfe 0:05a20e3e3179 272
pfe 0:05a20e3e3179 273 int main() {
pfe 0:05a20e3e3179 274
pfe 0:05a20e3e3179 275 CAP = 0;
pfe 0:05a20e3e3179 276 TAS = 0;
pfe 0:05a20e3e3179 277 ALT = 0;
pfe 0:05a20e3e3179 278 LedError = 0;
pfe 0:05a20e3e3179 279 //--------------------
pfe 0:05a20e3e3179 280 _I2C.frequency(100000);
pfe 0:05a20e3e3179 281 _ComGPS.baud(38400); //GPS V4 EAGLE
pfe 0:05a20e3e3179 282 _ComGPS.attach(&AutoMat_GPS,Serial::RxIrq); // defini une interruption chaque foix que le recepteur GPS envoi un charactere
pfe 0:05a20e3e3179 283 _ComXbee.baud(38400);
pfe 0:05a20e3e3179 284 RSTXbee=0;
pfe 0:05a20e3e3179 285 wait(0.5);
pfe 0:05a20e3e3179 286 RSTXbee=1;
pfe 0:05a20e3e3179 287 Sansors_Init();
pfe 0:05a20e3e3179 288 //--------------------
pfe 0:05a20e3e3179 289 //-------------- File Creat RGPSLogX.csv and DataLogX.csv X=FileIndex
pfe 0:05a20e3e3179 290 FileIndex = 5;
pfe 0:05a20e3e3179 291 //--------------------
pfe 0:05a20e3e3179 292 sprintf(DataLogFileName,"/USB/DataLog%lu.csv",FileIndex);
pfe 0:05a20e3e3179 293 Fs_Log = fopen(DataLogFileName, "w");//ajouter un nouveau fichier et écraser l'ancien
pfe 0:05a20e3e3179 294 //-------------------- Verification de la creations des fichers
pfe 0:05a20e3e3179 295 if(Fs_Log==NULL) goto LabError;
pfe 0:05a20e3e3179 296 fprintf(Fs_Log,"LogData\r\n");
pfe 0:05a20e3e3179 297 fprintf(Fs_Log,"GPS;TIMER1;Qual;Heur;LatD;LatMin;LatDir;LongD;LongMin;LongDir;HMSL\r\n");
pfe 0:05a20e3e3179 298 fprintf(Fs_Log,"PDV;TIMER1;CAP;ALT;TAS;Tem\r\n");
pfe 0:05a20e3e3179 299 //--------------------
pfe 0:05a20e3e3179 300 // Active les Automat
pfe 0:05a20e3e3179 301 ET_AutoMat_ALT = ET_01;
pfe 0:05a20e3e3179 302 ET_AutoMat_TAS = ET_01;
pfe 0:05a20e3e3179 303 ET_AutoMat_CAP = ET_01;
pfe 0:05a20e3e3179 304 _Ticker5ms.attach_us(&Irq05ms,5000);
pfe 0:05a20e3e3179 305 // la variable un nom de 1ms mais on fait ca sur 5ms ce n'est pas cohérent !!!!!!!
pfe 0:05a20e3e3179 306 // Samir
pfe 0:05a20e3e3179 307 //--------------------
pfe 0:05a20e3e3179 308 CAP = 9991;
pfe 0:05a20e3e3179 309 ALT = 9992;
pfe 0:05a20e3e3179 310 TAS = 9993;
pfe 0:05a20e3e3179 311 TEMPRE = 9994;
pfe 0:05a20e3e3179 312 TimeBtpress=0;
pfe 0:05a20e3e3179 313 while(TimeBtpress<100){
pfe 0:05a20e3e3179 314 if(boutonStart == 1)TimeBtpress++;
pfe 0:05a20e3e3179 315 if(boutonStart == 0)TimeBtpress=0;
pfe 0:05a20e3e3179 316 wait(0.005);
pfe 0:05a20e3e3179 317 }
pfe 0:05a20e3e3179 318 //while(boutonStart==0); // Boutton pour pouvoir controler le debut de l'enregistrement
pfe 0:05a20e3e3179 319 Flag_Timer = 0;
pfe 0:05a20e3e3179 320 TimeBtpress=0;
pfe 0:05a20e3e3179 321 while(boutonEnd==0){ // Boutton pour pouvoir controler la fin de l'enregistrement
pfe 0:05a20e3e3179 322
pfe 0:05a20e3e3179 323 switch (Flag_Timer) {
pfe 0:05a20e3e3179 324
pfe 0:05a20e3e3179 325 case 0x01:
pfe 0:05a20e3e3179 326 Flag_Timer = 0;
pfe 0:05a20e3e3179 327 break;
pfe 0:05a20e3e3179 328 case 0x02:
pfe 0:05a20e3e3179 329 Flag_Timer = 0xFF;
pfe 0:05a20e3e3179 330 AutoMat_DataLog();
pfe 0:05a20e3e3179 331 AutoMat_Xbee_Tx();
pfe 0:05a20e3e3179 332
pfe 0:05a20e3e3179 333 Flag_Timer = 0;
pfe 0:05a20e3e3179 334 break;
pfe 0:05a20e3e3179 335 case 0x03:
pfe 0:05a20e3e3179 336 Flag_Timer = 0xFF;
pfe 0:05a20e3e3179 337
pfe 0:05a20e3e3179 338 GPS = GpsData;
pfe 0:05a20e3e3179 339 OldALT = ALT;
pfe 0:05a20e3e3179 340 OldTAS = TAS;
pfe 0:05a20e3e3179 341 OldCAP = CAP;
pfe 0:05a20e3e3179 342 OldTEMPRE = TEMPRE;
pfe 0:05a20e3e3179 343
pfe 0:05a20e3e3179 344 ET_AutoMat_Xbee_Tx = ET_01;
pfe 0:05a20e3e3179 345 ET_AutoMat_DataLog = ET_01;
pfe 0:05a20e3e3179 346 AutoMat_DataLog();
pfe 0:05a20e3e3179 347 AutoMat_Xbee_Tx();
pfe 0:05a20e3e3179 348
pfe 0:05a20e3e3179 349 Flag_Timer = 0x00;
pfe 0:05a20e3e3179 350 break;
pfe 0:05a20e3e3179 351
pfe 0:05a20e3e3179 352 default: break;
pfe 0:05a20e3e3179 353 }// fin switch
pfe 0:05a20e3e3179 354 }
pfe 0:05a20e3e3179 355 _Ticker5ms.detach();
pfe 0:05a20e3e3179 356 _ComGPS.attach(NULL,Serial::RxIrq);
pfe 0:05a20e3e3179 357 LedXbee = 0;
pfe 0:05a20e3e3179 358 LedGPS = 0;
pfe 0:05a20e3e3179 359 LedLog = 1;
pfe 0:05a20e3e3179 360 fclose(Fs_Log);
pfe 0:05a20e3e3179 361 wait(1);
pfe 0:05a20e3e3179 362 LedLog = 0;
pfe 0:05a20e3e3179 363 while(1){
pfe 0:05a20e3e3179 364 LedError=!LedError;
pfe 0:05a20e3e3179 365 wait(0.5);
pfe 0:05a20e3e3179 366 }
pfe 0:05a20e3e3179 367 //----------------
pfe 0:05a20e3e3179 368 LabError:
pfe 0:05a20e3e3179 369 LedError=1;
pfe 0:05a20e3e3179 370 //----------------
pfe 0:05a20e3e3179 371
pfe 0:05a20e3e3179 372 }