Revision:
2:5893455b8c6c
Parent:
1:9f1fcd1e4c9c
--- a/SHT2X.h	Mon Sep 03 14:30:18 2018 +0000
+++ b/SHT2X.h	Tue Sep 04 11:07:22 2018 +0000
@@ -23,7 +23,132 @@
     Example:
 
 @code
+#include "mbed.h"
+#include "SHT2X.h"
 
+SHT2X mySHT2X ( I2C_SDA, I2C_SCL, SHT2X::SHT2X_ADDRESS, 400000 );
+Serial pc     ( USBTX, USBRX );                                                 // tx, rx
+
+DigitalOut  myled       ( LED1 );
+Ticker      newAction;
+
+
+//@brief Constants.
+//
+#define TX_BUFF_SIZE  64                                                        //   UART buffer size
+
+
+//@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()
+{
+    char     myBatteryMessage[5]  =  "";
+    uint32_t aux;
+    SHT2X::SHT2X_vector_data_t    mySHT2X_Data;
+
+    pc.baud ( 115200 );
+
+
+    myled   =   1;
+    wait(3);
+    myled   =   0;
+
+    // Perform a software reset
+    aux  =   mySHT2X.SHT2X_SoftReset ();
+    wait_ms ( 15 );
+
+    // Configure the device: Resolution Temperature: 14-bit and Humidity: 12-bit, Heater is disabled
+    aux  =   mySHT2X.SHT2X_Conf            ( SHT2X::USER_REGISTER_RESOLUTION_12RH_14TEMP, SHT2X::USER_REGISTER_HEATER_DISABLED );
+
+    // Get the serial number
+    aux  =   mySHT2X.SHT2X_GetSerialNumber ( &mySHT2X_Data );
+
+    // Transmit result through the UART
+    pc.printf( "ID: %ld\r\n", mySHT2X_Data.SerialNumber );
+
+    myState  =   0UL;                                                           // Reset the variable
+    newAction.attach( &changeDATA, 0.5f );                                      // the address of the function to be attached ( changeDATA ) and the interval ( 0.5s )
+
+    // Let the callbacks take care of everything
+    while(1) {
+        sleep();
+
+        switch ( myState ) {
+            default:
+            case 1:
+                myled = 1;
+
+                // Trigger a new temperature measurement
+                aux  =   mySHT2X.SHT2X_TriggerTemperature ( SHT2X::SHT2X_NO_HOLD_MASTER_MODE );
+                break;
+
+            case 2:
+                // Get the temperature
+                aux  =   mySHT2X.SHT2X_ReadTemperature    ( &mySHT2X_Data );
+
+                // Trigger a new relative humidity measurement
+                aux  =   mySHT2X.SHT2X_TriggerHumidity    ( SHT2X::SHT2X_NO_HOLD_MASTER_MODE );
+                break;
+
+            case 3:
+                // Get the relative humidity
+                aux  =   mySHT2X.SHT2X_ReadHumidity       ( &mySHT2X_Data );
+
+                // Get the battery status
+                aux  =   mySHT2X.SHT2X_BatteryStatus      ( &mySHT2X_Data );
+
+                // Prepare the message for the battery status
+                if ( ( mySHT2X_Data.BatteryStatus & SHT2X::USER_REGISTER_STATUS_END_BATTERY_MASK ) == SHT2X::USER_REGISTER_STATUS_END_BATTERY_HIGH_2V25 ) {
+                    strcpy( myBatteryMessage, "GOOD" );
+                } else {
+                    strcpy( myBatteryMessage, "BAD" );
+                }
+
+                // Transmit result through the UART
+                pc.printf ( "Temperature: %0.2f C | RH: %0.2f | Battery: %s\r\n", mySHT2X_Data.Temperature, mySHT2X_Data.RelativeHumidity, myBatteryMessage );
+
+
+                // Reset the variables
+                myState  =   0UL;
+                myled    =   0;
+                break;
+        }
+    }
+}
+
+
+// @brief       changeDATA ( void  )
+//
+// @details     It changes myState variable
+//
+// @param[in]    N/A
+//
+// @param[out]   N/A.
+//
+//
+// @return       N/A..
+//
+//
+// @author      Manuel Caballero
+// @date        3/September/2018
+// @version     3/September/2018   The ORIGIN
+// @pre         N/A
+// @warning     N/A.
+void changeDATA ( void )
+{
+    myState++;
+}
 @endcode
 */