Dependencies: ChaNFSSD mbed BMP085 SHT2x
Diff: main.cpp
- Revision:
- 5:3a1ce282892c
- Parent:
- 4:879b8dcfee15
- Child:
- 6:4af28d398585
--- a/main.cpp Sat Feb 04 17:01:17 2012 +0000 +++ b/main.cpp Sun Feb 05 13:35:15 2012 +0000 @@ -4,7 +4,7 @@ * 2012-1-4 Toshihisa T */ -#define __MY_VERSION__ "0.81" +#define __MY_VERSION__ "0.83" #define HAVE_TOGGLE_SW #define HAVE_MICROSD @@ -143,9 +143,9 @@ // SHT2x 0x80 int i2c_found() { int count = 0; - lcd.locate(0,2); + lcd.locate(0,0); lcd.printf("%-19s","I2C Dev:"); - lcd.locate(8,2); + lcd.locate(8,0); for (int address=0; address<256; address+=2) { if (!i2c.write(address, NULL, 0)) { // 0 returned is ok switch(address){ @@ -308,25 +308,34 @@ ClearScreen(); -#ifdef HAVE_MICROSD - lcd.locate(0,0); - lcd.printf("Check MicroSD:"); - logFile_Init(); -#endif - lcd.locate(0,0); - switch(avaiableSD){ + //=================================================== + i2c_found(); + + //=================================================== + CO2.format(8,Serial::None,1); + CO2.baud(9600); + CO2.recvStart(); + + lcd.locate(0,1); + lcd.printf("Check CO2:"); + CO2_find = 0; + ret = CO2_Read(&CO2_val); + switch(ret){ case 0: - lcd.printf("Check MicroSD:NG"); + lcd.printf("OK"); + CO2_find = 1; break; - case 1: - lcd.printf("Check MicroSD:OK"); + case -99: + lcd.printf("NOT FOUND"); break; default: - lcd.printf("Check MicroSD:DO\'NT USE"); + lcd.printf("NG"); break; } - - lcd.locate(0,1); + CO2_val = 0; + + //=================================================== + lcd.locate(0,2); lcd.printf("Initalize GPS:"); UBXPacket.cjobst = 0; @@ -383,34 +392,31 @@ } } UBXPacket.cjobst = 0; - lcd.locate(0,1); + lcd.locate(0,2); lcd.printf("Initalize GPS:%s",(GPS_isRaw) ? "OK" : "NG"); - i2c_found(); - // ad7994.Start(); - CO2.format(8,Serial::None,1); - CO2.baud(9600); - CO2.recvStart(); - + //=================================================== +#ifdef HAVE_MICROSD + lcd.locate(0,3); + lcd.printf("Check MicroSD:"); + logFile_Init(); +#endif lcd.locate(0,3); - lcd.printf("Check CO2:"); - CO2_find = 0; - ret = CO2_Read(&CO2_val); - switch(ret){ + switch(avaiableSD){ case 0: - lcd.printf("OK"); - CO2_find = 1; + lcd.printf("Check MicroSD:NG"); break; - case -99: - lcd.printf("NOT FOUND"); + case 1: + lcd.printf("Check MicroSD:OK"); break; default: - lcd.printf("NG"); + lcd.printf("Check MicroSD:DO\'NT USE"); break; } - CO2_val = 0; + + //=================================================== wait(3.0); @@ -454,7 +460,7 @@ } } lcd.locate(0,0); - lcd.printf("%04d-%02d-%02d %02d:%02d:%02d",year,mon,day,hour,min,sec); + lcd.printf("%c%04d-%02d-%02d %02d:%02d:%02d",(gpsFP) ? '*' : ' ',year,mon,day,hour,min,sec); if(pre_sec != sec){ pre_sec = sec; @@ -472,10 +478,13 @@ lcd.locate(0,1); lcd.printf("%-8.2fhPa %-6.2fC", p, t1); if(sht25_find){ - sht25.SHT2x_MeasurePoll(TEMP,&temp); - t2 = sht25.SHT2x_CalcTemperatureC(temp); - sht25.SHT2x_MeasurePoll(HUMIDITY,&temp); - h = sht25.SHT2x_CalcRH(temp); + if(sht25.SHT2x_MeasurePoll(TEMP,&temp) == 0){ + t2 = sht25.SHT2x_CalcTemperatureC(temp); + } + if(sht25.SHT2x_MeasurePoll(HUMIDITY,&temp) == 0){ + h = sht25.SHT2x_CalcRH(temp); + } + sht25.SHT2x_SoftReset(); } lcd.locate(0,2); lcd.printf("%-6.2fC %-6.2fRH", t2, h); @@ -505,6 +514,26 @@ } /* + * 2012-2-5 V0.83 + * センサー、I/Oの検出順番を変更(H/W 組立時の試験を兼ねる) + * 下記の順番でセンサーやI/Oの検出をする。 + * I2C → CO2センサー → U-Blox(raw-mode) → マイクロSD + * マイクロSD が未装着でも U-Blox の raw-mode までは + * 進めるので、H/W 組立後の基本チェックが可能。 + */ +/* + * 2012-2-5 V0.82 + * バイクによる実走試験での結果を反映。 + * 1) ログボタンのON/OFFでLEDも光らせるが、ケースに収めると + * LED だと分からなくなるので、液晶画面でもログのON/OFFが + * 分かるようにした。ログをONすると、画面左上に'*'を出す。 + * 2) SHT25 が、時々オフセットがかかったかの様な値を返すので、 + * 下記の修正を行った。但しこの修正が確実かはまだ分からない。 + * a) 関数の戻り値が正常な場合に値を採用する。これは必要。 + * b) 温湿度の取得後、SHT25 に対してソフトリセット命令を + * 毎回送る。これでうまく行くようならこれでいく。 + */ +/* * 2012-2-5 V0.81 * 気圧センサーが時々不正な値を出力する。気温が100度を超える値になる。 * ソフトバグか、センサー自身の問題かは切り分けていないが、気温が100度を