Motoo Tanaka
/
test_BME280
test program for my BME280 library. Both I2C and SPI mode have been tested.
Diff: main.cpp
- Revision:
- 1:21463f9ca08d
- Parent:
- 0:7e8c784a0df1
diff -r 7e8c784a0df1 -r 21463f9ca08d main.cpp --- a/main.cpp Tue May 09 06:33:18 2017 +0000 +++ b/main.cpp Wed May 10 09:12:28 2017 +0000 @@ -2,32 +2,48 @@ #include "MSS.h" #include "BME280.h" +#define SPI_IF 1 +#define I2C_IF 2 + #define BME280_I2C_ADDRESS 0x76 DigitalOut csb(PIN_CS0, 1) ; int main() { - uint8_t data[8] ; float temp, hum, pres ; -// BME280 *bme280 = new BME280(PIN_SDA, PIN_SCL, BME280_I2C_ADDRESS) ; - BME280 *bme280 = new BME280(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS0) ; + BME280 *bme280 = 0 ; + int used_if = I2C_IF ; /* SPI_IF for SPI */ + + if (used_if == I2C_IF) { + bme280 = new BME280(PIN_SDA, PIN_SCL, BME280_I2C_ADDRESS) ; + } else if (used_if == SPI_IF) { + bme280 = new BME280(PIN_SCK, PIN_MISO, PIN_MOSI, PIN_CS0) ; + } else { + printf("Unsupported IF for BME280 [%d]\n", used_if) ; + exit(EXIT_FAILURE) ; + } bme280->reset() ; wait(2) ; bme280->init() ; wait(1) ; - printf("=== test BME280 for %s (%s) ===\n", BOARD_NAME, __DATE__) ; + printf("\n=== test BME280 for %s (%s) ===\n", BOARD_NAME, __DATE__) ; + if (used_if == I2C_IF) { + printf("IF = I2C, ") ; + } else if (used_if == SPI_IF) { + printf("IF = SPI, ") ; + } printf("ID = 0x%02X (0x60 expected for BME280)\n", bme280->getID()) ; + printf("Temperature(C) , Humidity(%%), Pressure(hPa)\n") ; while(1) { bme280->trigger() ; while(bme280->busy()) { wait(0.1) ; } - bme280->readData(data) ; - temp = bme280->getTemperature(&data[3]) ; - hum = bme280->getHumidity(&data[6]) ; - pres = bme280->getPressure(&data[0]) ; + temp = bme280->getTemperature() ; + hum = bme280->getHumidity() ; + pres = bme280->getPressure() ; printf("%.2f, %.2f, %.2f\n", temp, hum, pres) ; wait(2) ; }