Diff: BMP180.h
- Revision:
- 3:60816c745222
- Parent:
- 2:3a52d110213a
diff -r 3a52d110213a -r 60816c745222 BMP180.h
--- a/BMP180.h Tue Sep 11 10:34:58 2018 +0000
+++ b/BMP180.h Tue Sep 11 11:35:00 2018 +0000
@@ -23,7 +23,118 @@
Example:
@code
+#include "mbed.h"
+#include "BMP180.h"
+BMP180 myBMP180 ( I2C_SDA, I2C_SCL, BMP180::BMP180_ADDRESS, 400000 );
+Serial pc ( USBTX, USBRX ); // tx, rx
+
+DigitalOut myled ( LED1 );
+Ticker newAction;
+
+
+// @brief Constants.
+//
+
+
+// @brief Variables.
+//
+volatile uint32_t myState; // State that indicates when to perform an ADC sample
+
+
+//
+// @brief FUNCTION PROTOTYPES
+//
+void changeDATA ( void );
+
+
+// @brief FUNCTION FOR APPLICATION MAIN ENTRY.
+//
+int main()
+{
+ uint32_t aux;
+ BMP180::BMP180_chip_id_data_t myBMP180_ChipID;
+ BMP180::BMP180_temperature_data_t myBMP180_TemperatureData;
+ BMP180::BMP180_pressure_data_t myBMP180_PressureData;
+ BMP180::BMP180_calibration_data_t myBMP180_Calibration_Data;
+ BMP180::BMP180_uncompensated_data_t myBMP180_Uncompensated_Data;
+
+ pc.baud ( 115200 );
+
+
+ myled = 1;
+ wait(3);
+ myled = 0;
+
+ // Get the chip-id
+ aux = myBMP180.BMP180_GetID ( &myBMP180_ChipID );
+ pc.printf( "Chip-ID: %d\r\n", myBMP180_ChipID.id );
+
+ // Get calibration data
+ aux = myBMP180.BMP180_Get_Cal_Param ( &myBMP180_Calibration_Data );
+ pc.printf( "AC1: %d, AC2: %d, AC3: %d, AC4: %d, AC5: %d, AC6: %d, B1: %d, B2: %d, MB: %d, MC: %d, MD: %d\r\n", myBMP180_Calibration_Data.ac1, myBMP180_Calibration_Data.ac2,
+ myBMP180_Calibration_Data.ac3, myBMP180_Calibration_Data.ac4, myBMP180_Calibration_Data.ac5, myBMP180_Calibration_Data.ac6, myBMP180_Calibration_Data.b1, myBMP180_Calibration_Data.b2,
+ myBMP180_Calibration_Data.mb, myBMP180_Calibration_Data.mc, myBMP180_Calibration_Data.md );
+
+
+
+ myState = 0UL; // Reset the variable
+ newAction.attach( &changeDATA, 2 ); // the address of the function to be attached ( changeDATA ) and the interval ( 2s )
+
+ // Let the callbacks take care of everything
+ while(1) {
+ sleep();
+
+ if ( myState == 1UL ) {
+ myled = 1U;
+
+ // Get uncompensated temperature
+ aux = myBMP180.BMP180_Get_UT ( &myBMP180_Uncompensated_Data );
+
+ // Get uncompensated pressure, Resolution: Standard
+ aux = myBMP180.BMP180_Get_UP ( BMP180::PRESSURE_STANDARD_MODE, &myBMP180_Uncompensated_Data );
+
+ // Calculate the true temperature
+ myBMP180_TemperatureData = myBMP180.BMP180_Get_Temperature ( myBMP180_Calibration_Data, myBMP180_Uncompensated_Data );
+
+ // Calculate the true pressure
+ myBMP180_PressureData = myBMP180.BMP180_Get_CalPressure ( myBMP180_Calibration_Data, myBMP180_TemperatureData, BMP180::PRESSURE_STANDARD_MODE, myBMP180_Uncompensated_Data );
+
+ // Transmit result through the UART
+ pc.printf ( "Temperature: %0.1f C | Pressure: %ld Pa\r\n", ( 0.1f * myBMP180_TemperatureData.temp ), myBMP180_PressureData.press );
+
+
+ // Reset the variables
+ myState = 0UL;
+ myled = 0U;
+ }
+ }
+}
+
+
+//
+ // @brief changeDATA ( void )
+ //
+ // @details It changes myState variable
+ //
+ // @param[in] N/A
+ //
+ // @param[out] N/A.
+ //
+ //
+ // @return N/A..
+ //
+ //
+ // @author Manuel Caballero
+ // @date 11/September/2018
+ // @version 11/September/2018 The ORIGIN
+ // @pre N/A
+ // @warning N/A.
+ //
+void changeDATA ( void )
+{
+ myState = 1UL;
+}
@endcode
*/