diff --git a/examples/idDHT11_Lib_example/idDHT11_Lib_example.ino b/examples/idDHT11_Lib_example/idDHT11_Lib_example.ino index 8d7ceca..05006b6 100644 --- a/examples/idDHT11_Lib_example/idDHT11_Lib_example.ino +++ b/examples/idDHT11_Lib_example/idDHT11_Lib_example.ino @@ -12,7 +12,7 @@ int idDHT11pin = 2; //Digital pin for comunications int idDHT11intNumber = 0; //interrupt number (must be the one that use the previus defined pin (see table above) //declaration -void dht11_wrapper(); +void dht11_wrapper(); // must be declared before the lib initialization // Lib instantiate idDHT11 DHT11(idDHT11pin,idDHT11intNumber,dht11_wrapper); @@ -25,6 +25,8 @@ void setup() Serial.println(IDDHT11LIB_VERSION); Serial.println("---------------"); } +// This wrapper is in charge of calling +// mus be defined like this for the lib work void dht11_wrapper() { DHT11.isrCallback(); } @@ -45,8 +47,14 @@ void loop() case IDDHTLIB_ERROR_CHECKSUM: Serial.println("Error\n\r\tChecksum error"); break; - case IDDHTLIB_ERROR_TIMEOUT: - Serial.println("Error\n\r\tTime out error"); + case IDDHTLIB_ERROR_ISR_TIMEOUT: + Serial.println("Error\n\r\tISR Time out error"); + break; + case IDDHTLIB_ERROR_RESPONSE_TIMEOUT: + Serial.println("Error\n\r\tResponse time out error"); + break; + case IDDHTLIB_ERROR_DATA_TIMEOUT: + Serial.println("Error\n\r\tData time out error"); break; case IDDHTLIB_ERROR_ACQUIRING: Serial.println("Error\n\r\tAcquiring"); diff --git a/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino b/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino index fe3b65b..28c3ef6 100644 --- a/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino +++ b/examples/idDHT11_Lib_example_Simple/idDHT11_Lib_example_Simple.ino @@ -14,7 +14,7 @@ int idDHT11pin = 2; //Digital pin for comunications int idDHT11intNumber = 0; //interrupt number (must be the one that use the previus defined pin (see table above) //declaration -void dht11_wrapper(); +void dht11_wrapper(); // must be declared before the lib initialization // Lib instantiate idDHT11 DHT11(idDHT11pin,idDHT11intNumber,dht11_wrapper); @@ -27,6 +27,8 @@ void setup() Serial.println(IDDHT11LIB_VERSION); Serial.println("---------------"); } +// This wrapper is in charge of calling +// mus be defined like this for the lib work void dht11_wrapper() { DHT11.isrCallback(); } @@ -45,8 +47,14 @@ void loop() case IDDHTLIB_ERROR_CHECKSUM: Serial.println("Error\n\r\tChecksum error"); break; - case IDDHTLIB_ERROR_TIMEOUT: - Serial.println("Error\n\r\tTime out error"); + case IDDHTLIB_ERROR_ISR_TIMEOUT: + Serial.println("Error\n\r\tISR time out error"); + break; + case IDDHTLIB_ERROR_RESPONSE_TIMEOUT: + Serial.println("Error\n\r\tResponse time out error"); + break; + case IDDHTLIB_ERROR_DATA_TIMEOUT: + Serial.println("Error\n\r\tData time out error"); break; case IDDHTLIB_ERROR_ACQUIRING: Serial.println("Error\n\r\tAcquiring"); diff --git a/idDHT11.cpp b/idDHT11.cpp index a758643..c24bee7 100644 --- a/idDHT11.cpp +++ b/idDHT11.cpp @@ -67,7 +67,7 @@ void idDHT11::isrCallback() { int delta = (newUs-us); us = newUs; if (delta>6000) { - status = IDDHTLIB_ERROR_TIMEOUT; + status = IDDHTLIB_ERROR_ISR_TIMEOUT; state = STOPPED; detachInterrupt(intNumber); return; @@ -81,7 +81,7 @@ void idDHT11::isrCallback() { state = DATA; } else { detachInterrupt(intNumber); - status = IDDHTLIB_ERROR_TIMEOUT; + status = IDDHTLIB_ERROR_RESPONSE_TIMEOUT; state = STOPPED; } break; @@ -90,7 +90,7 @@ void idDHT11::isrCallback() { detachInterrupt(intNumber); status = IDDHTLIB_ERROR_DELTA; state = STOPPED; - } else if(6090) //is a one bits[idx] |= (1 << cnt); if (cnt == 0) { // whe have fullfilled the byte, go to next @@ -114,7 +114,7 @@ void idDHT11::isrCallback() { } else cnt--; } else { detachInterrupt(intNumber); - status = IDDHTLIB_ERROR_TIMEOUT; + status = IDDHTLIB_ERROR_DATA_TIMEOUT; state = STOPPED; } break; diff --git a/idDHT11.h b/idDHT11.h index 384cc44..ea39613 100644 --- a/idDHT11.h +++ b/idDHT11.h @@ -21,17 +21,19 @@ #define IDDHT11LIB_VERSION "0.1" // state codes -#define IDDHTLIB_OK 0 +#define IDDHTLIB_OK 0 #define IDDHTLIB_ACQUIRING 1 #define IDDHTLIB_ACQUIRED 2 -#define IDDHTLIB_RESPONSE_OK 3 +#define IDDHTLIB_RESPONSE_OK 3 // error codes #define IDDHTLIB_ERROR_CHECKSUM -1 -#define IDDHTLIB_ERROR_TIMEOUT -2 -#define IDDHTLIB_ERROR_ACQUIRING -3 -#define IDDHTLIB_ERROR_DELTA -4 -#define IDDHTLIB_ERROR_NOTSTARTED -5 +#define IDDHTLIB_ERROR_ISR_TIMEOUT -2 +#define IDDHTLIB_ERROR_RESPONSE_TIMEOUT -3 +#define IDDHTLIB_ERROR_DATA_TIMEOUT -4 +#define IDDHTLIB_ERROR_ACQUIRING -5 +#define IDDHTLIB_ERROR_DELTA -6 +#define IDDHTLIB_ERROR_NOTSTARTED -7 #define IDDHT11_CHECK_STATE if(state == STOPPED) \ return status; \ @@ -71,4 +73,4 @@ private: volatile float hum; volatile float temp; }; -#endif // idDHT11_H__ \ No newline at end of file +#endif // idDHT11_H__