The reading doesn't work with WiFi enabled

Just get timing errors
This commit is contained in:
2023-10-31 20:59:54 +00:00
parent 03b4bc7e5a
commit 36041e63d2
2 changed files with 17 additions and 11 deletions

View File

@@ -53,6 +53,7 @@ uint32_t wait_for_signal_to_change_from(int signal_level) {
dht22_error dht22_read() {
portDISABLE_INTERRUPTS();
/*
* From datasheet:
* - Host pulls low "beyond at least 1ms"
@@ -73,8 +74,10 @@ dht22_error dht22_read() {
uint32_t elapsed_time;
elapsed_time = wait_for_signal_to_change_from(1);
if (elapsed_time == DHT22_TIMEOUT_ERROR) {
portENABLE_INTERRUPTS();
return DHT22_TIMEOUT_ERROR;
} else if (elapsed_time > 40) {
portENABLE_INTERRUPTS();
return DHT22_TIMING_ERROR;
}
@@ -86,15 +89,19 @@ dht22_error dht22_read() {
elapsed_time = wait_for_signal_to_change_from(0);
if (elapsed_time == DHT22_TIMEOUT_ERROR) {
portENABLE_INTERRUPTS();
return DHT22_TIMEOUT_ERROR;
} else if (elapsed_time < 70 || elapsed_time > 90) {
portENABLE_INTERRUPTS();
return DHT22_TIMING_ERROR;
}
elapsed_time = wait_for_signal_to_change_from(1);
if (elapsed_time == DHT22_TIMEOUT_ERROR) {
portENABLE_INTERRUPTS();
return DHT22_TIMEOUT_ERROR;
} else if (elapsed_time < 70 || elapsed_time > 90) {
portENABLE_INTERRUPTS();
return DHT22_TIMING_ERROR;
}
@@ -108,7 +115,9 @@ dht22_error dht22_read() {
uint8_t data[5] = {0, 0, 0, 0, 0};
for (uint8_t i = 0; i < 40; i++) {
elapsed_time = wait_for_signal_to_change_from(0);
if (elapsed_time == DHT22_TIMEOUT_ERROR || elapsed_time < 30 || elapsed_time > 70) {
if (elapsed_time == DHT22_TIMEOUT_ERROR || elapsed_time < 30 ||
elapsed_time > 70) {
portENABLE_INTERRUPTS();
return DHT22_TIMEOUT_ERROR;
}