This is a Testing library

Fork of DHT by Wim De Roeve

Revision:
1:946ecc42b731
Parent:
0:9b5b3200688f
diff -r 9b5b3200688f -r 946ecc42b731 DHT.cpp
--- a/DHT.cpp	Mon Jul 09 19:47:43 2012 +0000
+++ b/DHT.cpp	Mon Nov 28 12:59:39 2016 +0000
@@ -43,6 +43,21 @@
 DHT::~DHT() {
 }
 
+void DHT::printErr(int ErrType) {
+ switch (ErrType) {
+   case 0: printf("ERROR_NONE"); break;
+   case 1: printf("BUS_BUSY"); break;
+   case 2: printf("ERROR_NOT_PRESENT"); break;
+   case 3: printf("ERROR_ACK_TOO_LONG"); break;
+   case 4: printf("ERROR_SYNC_TIMEOUT"); break;
+   case 5: printf("ERROR_DATA_TIMEOUT"); break;
+   case 6: printf("ERROR_CHECKSUM"); break;
+   case 7: printf("ERROR_NO_PATIENCE"); break;
+
+ } 
+ printf("\r\n");   
+}    
+
 int DHT::readData() {
     int i, j, retryCount,b;
     unsigned int bitTimes[DHT_DATA_BIT_COUNT];
@@ -79,9 +94,9 @@
 
     DHT_io.output();
     DHT_io = 0;
-    wait_ms(18);
+    wait_ms(5);
     DHT_io = 1;
-    wait_us(40);
+    wait_us(20);
     DHT_io.input();
 
     retryCount = 0;
@@ -98,8 +113,8 @@
         return err;
     }
 
-    wait_us(80);
-
+    wait_us(80); //step 2 wait for High
+   
     for (i = 0; i < 5; i++) {
         for (j = 0; j < 8; j++) {
 
@@ -149,7 +164,7 @@
 
 float DHT::CalcTemperature() {
     int v;
-
+    float outvalue;
     switch (_DHTtype) {
         case DHT11:
             v = DHT_data[2];
@@ -158,10 +173,10 @@
             v = DHT_data[2] & 0x7F;
             v *= 256;
             v += DHT_data[3];
-            v /= 10;
+            outvalue=(float) v/10;
             if (DHT_data[2] & 0x80)
-                v *= -1;
-            return float(v);
+                outvalue *= -1;
+            return outvalue;
     }
     return 0;
 }
@@ -215,7 +230,8 @@
 
 float DHT::CalcHumidity() {
     int v;
-
+    float outvalue;
+    
     switch (_DHTtype) {
         case DHT11:
             v = DHT_data[0];
@@ -224,10 +240,9 @@
             v = DHT_data[0];
             v *= 256;
             v += DHT_data[1];
-            v /= 10;
-            return float(v);
+            outvalue=(float) v/10;
+            return outvalue;
     }
     return 0;
 }
 
-