gavin beardall
/
hsc
main.cpp
- Committer:
- gbeardall
- Date:
- 2011-09-07
- Revision:
- 0:2fdc6095d7b4
- Child:
- 1:d01abb5e6f52
File content as of revision 0:2fdc6095d7b4:
#include "mbed.h" DigitalOut myled(LED1); // http://sensing.honeywell.com/index.cfm/ci_id/157750/la_id/1/document/1/re_id/0 // http://sensing.honeywell.com/index.cfm/ci_id/156988/la_id/1/document/1/re_id/0 #define HSC_2A 0x28 int main() { // BMP085 bmp085(p28, p27); //bmp085(p9, p10); // sda, scl printf("\rhsc\n\r"); I2C i2c(p28, p27); int id = HSC_2A; i2c.frequency(100000); // 100k - 400k while(1) { #if 0 i2c.start(); i2c.write((id<<1) | 1); int b1 = i2c.read(1); int b2 = i2c.read(1); int t1 = i2c.read(1); int t2 = i2c.read(0); i2c.stop(); printf("%02X %02X %02X %02X\n\r", b1, b2, t1, t2); #else unsigned char data[4]; i2c.read((id<<1)|1, (char*)data, sizeof(data)); //printf("%02X %02X %02X %02X\n\r", data[0], data[1], data[2], data[3]); int st = data[0]>>6; // status int bd = ((data[0] & 0x3f) << 8) | data[1]; // bridge data int td = ((data[2]<<8) | data[3]) >> 5; // temp data float p = ((float)bd-1638)*(15-0)/(14745-1638)-0; // convert to psi p = p * 68.9475729; // psi to hPa float t = (((float)td*200)/2047)-50; // convert to deg C printf("%d: %.2f hPa %.2f C\n\r", st, p, t); wait(1); #endif myled = 1; wait(0.2); myled = 0; wait(0.2); } // while } // main