2021年3月伊豆大島共同打上実験の電装ミッションプログラム

Dependencies:   mbed ADS1015 PQ_LPS22HB SPS30 SDFileSystem

Committer:
kazuncho
Date:
Sun Mar 14 16:00:18 2021 +0000
Revision:
0:976e8caa93f4
2021/03/15;

Who changed what in which revision?

UserRevisionLine numberNew contents of line
kazuncho 0:976e8caa93f4 1 #include "mbed.h"
kazuncho 0:976e8caa93f4 2 #include <cmath>
kazuncho 0:976e8caa93f4 3 #include "sps30.h"
kazuncho 0:976e8caa93f4 4 #include "SDFileSystem.h"
kazuncho 0:976e8caa93f4 5 #include "Adafruit_ADS1015.h"
kazuncho 0:976e8caa93f4 6 #include "PQ_LPS22HB.h"
kazuncho 0:976e8caa93f4 7
kazuncho 0:976e8caa93f4 8 #define ADS1115_ADDR 0b1001000
kazuncho 0:976e8caa93f4 9
kazuncho 0:976e8caa93f4 10 FILE *fp;
kazuncho 0:976e8caa93f4 11
kazuncho 0:976e8caa93f4 12 I2C i2c(D4, D5);
kazuncho 0:976e8caa93f4 13 Serial pc(USBTX, USBRX, 115200);
kazuncho 0:976e8caa93f4 14 Sps30 sps(D4, D5, 100000);
kazuncho 0:976e8caa93f4 15 SDFileSystem sd(D11, D12, D13, A3, "sd");
kazuncho 0:976e8caa93f4 16 Adafruit_ADS1115 ads1115(&i2c, ADS1115_ADDR);
kazuncho 0:976e8caa93f4 17 LPS22HB lps33hw(i2c, LPS22HB::SA0_HIGH);
kazuncho 0:976e8caa93f4 18 LPS22HB lps22hb(i2c, LPS22HB::SA0_LOW);
kazuncho 0:976e8caa93f4 19
kazuncho 0:976e8caa93f4 20 DigitalOut switch_on(D0);
kazuncho 0:976e8caa93f4 21 DigitalIn mission(D6);
kazuncho 0:976e8caa93f4 22 DigitalIn relay(D3);
kazuncho 0:976e8caa93f4 23
kazuncho 0:976e8caa93f4 24 Timer mission_timer;
kazuncho 0:976e8caa93f4 25 Timer flight_timer;
kazuncho 0:976e8caa93f4 26 Timer sd_timer;
kazuncho 0:976e8caa93f4 27 Ticker log_ticker;
kazuncho 0:976e8caa93f4 28 Ticker read_ticker;
kazuncho 0:976e8caa93f4 29
kazuncho 0:976e8caa93f4 30 char file_name[64];
kazuncho 0:976e8caa93f4 31 char f_inside_lps;
kazuncho 0:976e8caa93f4 32 char f_outside_lps;
kazuncho 0:976e8caa93f4 33
kazuncho 0:976e8caa93f4 34 enum {
kazuncho 0:976e8caa93f4 35 READY,
kazuncho 0:976e8caa93f4 36 RISE,
kazuncho 0:976e8caa93f4 37 FALL,
kazuncho 0:976e8caa93f4 38 RECOVERY,
kazuncho 0:976e8caa93f4 39 } phase;
kazuncho 0:976e8caa93f4 40
kazuncho 0:976e8caa93f4 41 bool recovery = false;
kazuncho 0:976e8caa93f4 42
kazuncho 0:976e8caa93f4 43 int mission_time;
kazuncho 0:976e8caa93f4 44 int flight_time;
kazuncho 0:976e8caa93f4 45 int sps_init;
kazuncho 0:976e8caa93f4 46 int sps_poll;
kazuncho 0:976e8caa93f4 47
kazuncho 0:976e8caa93f4 48 float pitot_speed;
kazuncho 0:976e8caa93f4 49 float density = 1.3;
kazuncho 0:976e8caa93f4 50
kazuncho 0:976e8caa93f4 51 float outside_press;
kazuncho 0:976e8caa93f4 52 float outside_temp;
kazuncho 0:976e8caa93f4 53 float inside_press;
kazuncho 0:976e8caa93f4 54 float inside_temp;
kazuncho 0:976e8caa93f4 55
kazuncho 0:976e8caa93f4 56 float mass1p0;
kazuncho 0:976e8caa93f4 57 float mass2p5;
kazuncho 0:976e8caa93f4 58 float mass4p0;
kazuncho 0:976e8caa93f4 59 float mass10p0;
kazuncho 0:976e8caa93f4 60 float num0p5;
kazuncho 0:976e8caa93f4 61 float num1p0;
kazuncho 0:976e8caa93f4 62 float num2p5;
kazuncho 0:976e8caa93f4 63 float num4p0;
kazuncho 0:976e8caa93f4 64 float num10p0;
kazuncho 0:976e8caa93f4 65 float typ_pm;
kazuncho 0:976e8caa93f4 66
kazuncho 0:976e8caa93f4 67 void init();
kazuncho 0:976e8caa93f4 68 void read();
kazuncho 0:976e8caa93f4 69 void pitot_tube();
kazuncho 0:976e8caa93f4 70 void lps33hw_mission();
kazuncho 0:976e8caa93f4 71 void lps22hb_mission();
kazuncho 0:976e8caa93f4 72 void record();
kazuncho 0:976e8caa93f4 73 void read_sps30();
kazuncho 0:976e8caa93f4 74
kazuncho 0:976e8caa93f4 75 int main()
kazuncho 0:976e8caa93f4 76 {
kazuncho 0:976e8caa93f4 77 init();
kazuncho 0:976e8caa93f4 78 mission_timer.start();
kazuncho 0:976e8caa93f4 79 while(1) {
kazuncho 0:976e8caa93f4 80 pitot_tube();
kazuncho 0:976e8caa93f4 81 lps33hw_mission();
kazuncho 0:976e8caa93f4 82 lps22hb_mission();
kazuncho 0:976e8caa93f4 83 read_sps30();
kazuncho 0:976e8caa93f4 84 //read();
kazuncho 0:976e8caa93f4 85 if(mission and !relay) { //リセット
kazuncho 0:976e8caa93f4 86 phase = READY;
kazuncho 0:976e8caa93f4 87 switch_on = 1;
kazuncho 0:976e8caa93f4 88 recovery = false;
kazuncho 0:976e8caa93f4 89 mission_timer.reset();
kazuncho 0:976e8caa93f4 90 mission_timer.start();
kazuncho 0:976e8caa93f4 91 flight_timer.reset();
kazuncho 0:976e8caa93f4 92 flight_timer.stop();
kazuncho 0:976e8caa93f4 93 }
kazuncho 0:976e8caa93f4 94 switch(phase) {
kazuncho 0:976e8caa93f4 95 case READY: //0
kazuncho 0:976e8caa93f4 96 if(mission and relay) {
kazuncho 0:976e8caa93f4 97 phase = RISE;
kazuncho 0:976e8caa93f4 98 flight_timer.reset();
kazuncho 0:976e8caa93f4 99 flight_timer.start();
kazuncho 0:976e8caa93f4 100 }
kazuncho 0:976e8caa93f4 101 break;
kazuncho 0:976e8caa93f4 102 case RISE: //1
kazuncho 0:976e8caa93f4 103 if(!mission and relay) {
kazuncho 0:976e8caa93f4 104 phase = FALL;
kazuncho 0:976e8caa93f4 105 }
kazuncho 0:976e8caa93f4 106 break;
kazuncho 0:976e8caa93f4 107 case FALL: //2
kazuncho 0:976e8caa93f4 108 if(!mission and !relay) {
kazuncho 0:976e8caa93f4 109 phase = RECOVERY;
kazuncho 0:976e8caa93f4 110 fclose(fp);
kazuncho 0:976e8caa93f4 111 //flight_timer.stop();
kazuncho 0:976e8caa93f4 112 //mission_timer.stop();
kazuncho 0:976e8caa93f4 113 wait(1.0f);
kazuncho 0:976e8caa93f4 114 }
kazuncho 0:976e8caa93f4 115 break;
kazuncho 0:976e8caa93f4 116 case RECOVERY: //3
kazuncho 0:976e8caa93f4 117 if(!recovery) {
kazuncho 0:976e8caa93f4 118 switch_on = 0; //センサーへの電源供給停止
kazuncho 0:976e8caa93f4 119 recovery = true;
kazuncho 0:976e8caa93f4 120 }
kazuncho 0:976e8caa93f4 121 break;
kazuncho 0:976e8caa93f4 122 }
kazuncho 0:976e8caa93f4 123 wait(0.5f);
kazuncho 0:976e8caa93f4 124 }
kazuncho 0:976e8caa93f4 125 }
kazuncho 0:976e8caa93f4 126
kazuncho 0:976e8caa93f4 127 void init()
kazuncho 0:976e8caa93f4 128 {
kazuncho 0:976e8caa93f4 129 pc.printf("---PQ_Hybrid_Mission---\r\n");
kazuncho 0:976e8caa93f4 130 switch_on = 1; //センサーへ電源供給開始
kazuncho 0:976e8caa93f4 131 //recovery = false;
kazuncho 0:976e8caa93f4 132 wait(1.0f);
kazuncho 0:976e8caa93f4 133 lps22hb.begin();
kazuncho 0:976e8caa93f4 134 lps33hw.begin();
kazuncho 0:976e8caa93f4 135
kazuncho 0:976e8caa93f4 136 sd.mount();
kazuncho 0:976e8caa93f4 137 mkdir("/sd", 0777);
kazuncho 0:976e8caa93f4 138 char file_name_format[] = "/sd/IZU2021_MISSION_%d.dat";
kazuncho 0:976e8caa93f4 139 int file_number = 1;
kazuncho 0:976e8caa93f4 140 while(1) {
kazuncho 0:976e8caa93f4 141 sprintf(file_name, file_name_format, file_number);
kazuncho 0:976e8caa93f4 142 fp = fopen(file_name, "r");
kazuncho 0:976e8caa93f4 143 if(fp != NULL) {
kazuncho 0:976e8caa93f4 144 fclose(fp);
kazuncho 0:976e8caa93f4 145 file_number++;
kazuncho 0:976e8caa93f4 146 } else {
kazuncho 0:976e8caa93f4 147 sprintf(file_name, "/sd/IZU2021_MISSION_%d.dat", file_number);
kazuncho 0:976e8caa93f4 148 break;
kazuncho 0:976e8caa93f4 149 }
kazuncho 0:976e8caa93f4 150 }
kazuncho 0:976e8caa93f4 151 fp = fopen(file_name, "w");
kazuncho 0:976e8caa93f4 152 sd_timer.start();
kazuncho 0:976e8caa93f4 153 if(fp) {
kazuncho 0:976e8caa93f4 154 fprintf(fp, "mission_time[s]\t");
kazuncho 0:976e8caa93f4 155 fprintf(fp, "flight_time[s]\t");
kazuncho 0:976e8caa93f4 156 fprintf(fp, "phase\t");
kazuncho 0:976e8caa93f4 157 fprintf(fp, "pitot_speed[m/s]\t");
kazuncho 0:976e8caa93f4 158 fprintf(fp, "pitot_speed[km/h]\t");
kazuncho 0:976e8caa93f4 159 fprintf(fp, "mass_1p0\t");
kazuncho 0:976e8caa93f4 160 fprintf(fp, "mass_2p5\t");
kazuncho 0:976e8caa93f4 161 fprintf(fp, "mass_4p0\t");
kazuncho 0:976e8caa93f4 162 fprintf(fp, "mass_10p0\t");
kazuncho 0:976e8caa93f4 163 fprintf(fp, "num_0p5\t");
kazuncho 0:976e8caa93f4 164 fprintf(fp, "num_1p0\t");
kazuncho 0:976e8caa93f4 165 fprintf(fp, "num_2p5\t");
kazuncho 0:976e8caa93f4 166 fprintf(fp, "num_4p0\t");
kazuncho 0:976e8caa93f4 167 fprintf(fp, "num_10p0\t");
kazuncho 0:976e8caa93f4 168 fprintf(fp, "typ_pm_size\t");
kazuncho 0:976e8caa93f4 169 fprintf(fp, "outside_press[Pa]\t");
kazuncho 0:976e8caa93f4 170 fprintf(fp, "outside_temp[degC]\t");
kazuncho 0:976e8caa93f4 171 fprintf(fp, "inside_press[Pa]\t");
kazuncho 0:976e8caa93f4 172 fprintf(fp, "inside_temp[degC]\t");
kazuncho 0:976e8caa93f4 173 fprintf(fp, "\r\n");
kazuncho 0:976e8caa93f4 174 }
kazuncho 0:976e8caa93f4 175
kazuncho 0:976e8caa93f4 176 log_ticker.attach(record, 0.5f);
kazuncho 0:976e8caa93f4 177 //read_ticker.attach(read, 0.5f);
kazuncho 0:976e8caa93f4 178 }
kazuncho 0:976e8caa93f4 179
kazuncho 0:976e8caa93f4 180 /*********************************************
kazuncho 0:976e8caa93f4 181 / MPXV5004DPの場合:(Differencial) = ((Vout / Vs) - 0.2) / 0.2
kazuncho 0:976e8caa93f4 182 / MPX5010DPの場合:(Differencial) = ((Vout / Vs) - 0.04) / 0.09
kazuncho 0:976e8caa93f4 183 / speed = root(2 * P / ρ)
kazuncho 0:976e8caa93f4 184 / pitot_paが負のときnanが返される
kazuncho 0:976e8caa93f4 185 **********************************************/
kazuncho 0:976e8caa93f4 186 void pitot_tube()
kazuncho 0:976e8caa93f4 187 {
kazuncho 0:976e8caa93f4 188 float sum = 0;
kazuncho 0:976e8caa93f4 189 float voltage = 0;
kazuncho 0:976e8caa93f4 190 float pitot_pa = 0;
kazuncho 0:976e8caa93f4 191 float pitot_volt = 0;
kazuncho 0:976e8caa93f4 192 for(int i = 0; i < 10; i++) {
kazuncho 0:976e8caa93f4 193 int16_t val = ads1115.readADC_SingleEnded(0);
kazuncho 0:976e8caa93f4 194 voltage = val / 32768.0 * 6.144;
kazuncho 0:976e8caa93f4 195 sum += voltage;
kazuncho 0:976e8caa93f4 196 }
kazuncho 0:976e8caa93f4 197 float v_ave = sum / 10.0f;
kazuncho 0:976e8caa93f4 198 pitot_volt = voltage - v_ave + 0.2f;
kazuncho 0:976e8caa93f4 199 pitot_pa = (pitot_volt / 5.0f - 0.04f) / 0.09f;
kazuncho 0:976e8caa93f4 200 pitot_speed = sqrt(2 * pitot_pa * 1000 / density);
kazuncho 0:976e8caa93f4 201 }
kazuncho 0:976e8caa93f4 202
kazuncho 0:976e8caa93f4 203 /*********************************************
kazuncho 0:976e8caa93f4 204 / 水密外配置。リレーの条件に使用する。
kazuncho 0:976e8caa93f4 205 **********************************************/
kazuncho 0:976e8caa93f4 206 void lps33hw_mission()
kazuncho 0:976e8caa93f4 207 {
kazuncho 0:976e8caa93f4 208 f_outside_lps = lps33hw.test();
kazuncho 0:976e8caa93f4 209 if(f_outside_lps) {
kazuncho 0:976e8caa93f4 210 outside_press = 0;
kazuncho 0:976e8caa93f4 211 outside_temp = 0;
kazuncho 0:976e8caa93f4 212 lps33hw.read_press(&outside_press);
kazuncho 0:976e8caa93f4 213 lps33hw.read_temp(&outside_temp);
kazuncho 0:976e8caa93f4 214 }
kazuncho 0:976e8caa93f4 215 }
kazuncho 0:976e8caa93f4 216
kazuncho 0:976e8caa93f4 217 /*********************************************
kazuncho 0:976e8caa93f4 218 / 水密内配置。水密になっているかの確認用。
kazuncho 0:976e8caa93f4 219 **********************************************/
kazuncho 0:976e8caa93f4 220 void lps22hb_mission()
kazuncho 0:976e8caa93f4 221 {
kazuncho 0:976e8caa93f4 222 f_inside_lps = lps22hb.test();
kazuncho 0:976e8caa93f4 223 if(f_inside_lps) {
kazuncho 0:976e8caa93f4 224 inside_press = 0;
kazuncho 0:976e8caa93f4 225 inside_temp = 0;
kazuncho 0:976e8caa93f4 226 lps22hb.read_press(&inside_press);
kazuncho 0:976e8caa93f4 227 lps22hb.read_temp(&inside_temp);
kazuncho 0:976e8caa93f4 228 }
kazuncho 0:976e8caa93f4 229 }
kazuncho 0:976e8caa93f4 230
kazuncho 0:976e8caa93f4 231 void read_sps30()
kazuncho 0:976e8caa93f4 232 {
kazuncho 0:976e8caa93f4 233 sps_init = sps.InitSPS30();
kazuncho 0:976e8caa93f4 234 if(sps.PollSPS30() == 3) {
kazuncho 0:976e8caa93f4 235 mass1p0 = sps.mass_1p0_f;
kazuncho 0:976e8caa93f4 236 mass2p5 = sps.mass_2p5_f;
kazuncho 0:976e8caa93f4 237 mass4p0 = sps.mass_4p0_f;
kazuncho 0:976e8caa93f4 238 mass10p0 = sps.mass_10p0_f;
kazuncho 0:976e8caa93f4 239 num0p5 = sps.num_0p5_f;
kazuncho 0:976e8caa93f4 240 num1p0 = sps.num_1p0_f;
kazuncho 0:976e8caa93f4 241 num2p5 = sps.num_2p5_f;
kazuncho 0:976e8caa93f4 242 num4p0 = sps.num_4p0_f;
kazuncho 0:976e8caa93f4 243 num10p0 = sps.num_10p0_f;
kazuncho 0:976e8caa93f4 244 typ_pm = sps.typ_pm_size_f;
kazuncho 0:976e8caa93f4 245 }
kazuncho 0:976e8caa93f4 246 }
kazuncho 0:976e8caa93f4 247
kazuncho 0:976e8caa93f4 248 void record()
kazuncho 0:976e8caa93f4 249 {
kazuncho 0:976e8caa93f4 250 mission_time = mission_timer.read();
kazuncho 0:976e8caa93f4 251 flight_time = flight_timer.read();
kazuncho 0:976e8caa93f4 252 fprintf(fp, "%4d\t", mission_time);
kazuncho 0:976e8caa93f4 253 fprintf(fp, "%4d\t", flight_time);
kazuncho 0:976e8caa93f4 254 fprintf(fp, "%1d\t", phase);
kazuncho 0:976e8caa93f4 255 fprintf(fp, "%f\t", pitot_speed);
kazuncho 0:976e8caa93f4 256 fprintf(fp, "%f\t", pitot_speed * 3600 / 1000.0f);
kazuncho 0:976e8caa93f4 257 fprintf(fp, "%f\t", sps.mass_1p0_f);
kazuncho 0:976e8caa93f4 258 fprintf(fp, "%f\t", sps.mass_2p5_f);
kazuncho 0:976e8caa93f4 259 fprintf(fp, "%f\t", sps.mass_4p0_f);
kazuncho 0:976e8caa93f4 260 fprintf(fp, "%f\t", sps.mass_10p0_f);
kazuncho 0:976e8caa93f4 261 fprintf(fp, "%f\t", sps.num_0p5_f);
kazuncho 0:976e8caa93f4 262 fprintf(fp, "%f\t", sps.num_1p0_f);
kazuncho 0:976e8caa93f4 263 fprintf(fp, "%f\t", sps.num_2p5_f);
kazuncho 0:976e8caa93f4 264 fprintf(fp, "%f\t", sps.num_4p0_f);
kazuncho 0:976e8caa93f4 265 fprintf(fp, "%f\t", sps.num_10p0_f);
kazuncho 0:976e8caa93f4 266 fprintf(fp, "%f\t", sps.typ_pm_size_f);
kazuncho 0:976e8caa93f4 267 fprintf(fp, "%f\t", outside_press);
kazuncho 0:976e8caa93f4 268 fprintf(fp, "%f\t", outside_temp);
kazuncho 0:976e8caa93f4 269 fprintf(fp, "%f\t", inside_press);
kazuncho 0:976e8caa93f4 270 fprintf(fp, "%f\t", inside_temp);
kazuncho 0:976e8caa93f4 271 fprintf(fp, "\r\n");
kazuncho 0:976e8caa93f4 272
kazuncho 0:976e8caa93f4 273 if(sd_timer.read_ms() >= 60*1000) { //1分ごとにリセット、開き直す。
kazuncho 0:976e8caa93f4 274 sd_timer.reset();
kazuncho 0:976e8caa93f4 275 sd_timer.start();
kazuncho 0:976e8caa93f4 276 if(fp) {
kazuncho 0:976e8caa93f4 277 fclose(fp);
kazuncho 0:976e8caa93f4 278 fp = fopen(file_name, "a"); //a:追加書き込みモード
kazuncho 0:976e8caa93f4 279 }
kazuncho 0:976e8caa93f4 280 }
kazuncho 0:976e8caa93f4 281 }
kazuncho 0:976e8caa93f4 282
kazuncho 0:976e8caa93f4 283
kazuncho 0:976e8caa93f4 284 void read()
kazuncho 0:976e8caa93f4 285 {
kazuncho 0:976e8caa93f4 286 mission_time = mission_timer.read();
kazuncho 0:976e8caa93f4 287 flight_time = flight_timer.read();
kazuncho 0:976e8caa93f4 288 pc.printf("mission time:%d\t", mission_time);
kazuncho 0:976e8caa93f4 289 pc.printf("flight time:%d\t", flight_time);
kazuncho 0:976e8caa93f4 290 pc.printf("phase:%d\t", (int)phase);
kazuncho 0:976e8caa93f4 291 pc.printf("relay:%d", (int)switch_on);
kazuncho 0:976e8caa93f4 292 /*
kazuncho 0:976e8caa93f4 293 pc.printf("SPEED[m/s]:\t");
kazuncho 0:976e8caa93f4 294 pc.printf("SPEED[km/h]:\t");
kazuncho 0:976e8caa93f4 295 pc.printf("MASS_1P0\t");
kazuncho 0:976e8caa93f4 296 pc.printf("MASS_2P5\t");
kazuncho 0:976e8caa93f4 297 pc.printf("MASS_4P0\t");
kazuncho 0:976e8caa93f4 298 pc.printf("MASS_10P0\t");
kazuncho 0:976e8caa93f4 299 pc.printf("NUM_0P5\t");
kazuncho 0:976e8caa93f4 300 pc.printf("NUM_1P0\t");
kazuncho 0:976e8caa93f4 301 pc.printf("NUM_2P5\t");
kazuncho 0:976e8caa93f4 302 pc.printf("NUM_4P0\t");
kazuncho 0:976e8caa93f4 303 pc.printf("NUM_10P0\t");
kazuncho 0:976e8caa93f4 304 pc.printf("PM_SIZE\t");
kazuncho 0:976e8caa93f4 305 pc.printf("OUT_PRESS\t");
kazuncho 0:976e8caa93f4 306 pc.printf("OUT_TEMP\t");
kazuncho 0:976e8caa93f4 307 pc.printf("IN_PRESS\t");
kazuncho 0:976e8caa93f4 308 pc.printf("IN_TEMP\t");
kazuncho 0:976e8caa93f4 309 */
kazuncho 0:976e8caa93f4 310 pc.printf("\r\n");
kazuncho 0:976e8caa93f4 311 /*
kazuncho 0:976e8caa93f4 312 pc.printf("%f\t", pitot_speed);
kazuncho 0:976e8caa93f4 313 pc.printf("%f\t", pitot_speed * 3600 / 1000.0f);
kazuncho 0:976e8caa93f4 314 pc.printf("%.2f\t", mass1p0);
kazuncho 0:976e8caa93f4 315 pc.printf("%.2f\t", mass2p5);
kazuncho 0:976e8caa93f4 316 pc.printf("%.2f\t", mass4p0);
kazuncho 0:976e8caa93f4 317 pc.printf("%.2f\t", mass10p0);
kazuncho 0:976e8caa93f4 318 pc.printf("%.2f\t", num0p5);
kazuncho 0:976e8caa93f4 319 pc.printf("%.2f\t", num1p0);
kazuncho 0:976e8caa93f4 320 pc.printf("%.2f\t", num2p5);
kazuncho 0:976e8caa93f4 321 pc.printf("%.2f\t", num4p0);
kazuncho 0:976e8caa93f4 322 pc.printf("%.2f\t", num10p0);
kazuncho 0:976e8caa93f4 323 pc.printf("%.2f\t", typ_pm);
kazuncho 0:976e8caa93f4 324 pc.printf("%.2f\t", ground_press);
kazuncho 0:976e8caa93f4 325 pc.printf("%.2f\t", outside_press);
kazuncho 0:976e8caa93f4 326 pc.printf("%.1f\t", outside_temp);
kazuncho 0:976e8caa93f4 327 pc.printf("%.2f\t", inside_press);
kazuncho 0:976e8caa93f4 328 pc.printf("%.1f\t", inside_temp);
kazuncho 0:976e8caa93f4 329 pc.printf("\r\n");
kazuncho 0:976e8caa93f4 330 */
kazuncho 0:976e8caa93f4 331 }