Can't believe I fucked the for loop like that

Well I can believe it
This commit is contained in:
2023-10-30 22:58:28 +00:00
parent e139aa7e9c
commit 69a7732017
2 changed files with 14 additions and 5 deletions

View File

@@ -34,7 +34,13 @@ void dht22_handle_error(dht22_error e) {
uint32_t wait_for_signal_to_change_from(int signal_level) {
uint64_t start_time = esp_timer_get_time();
uint64_t next_time = start_time;
/*
A vague attempt at "waiting" until the pin comes some kind of level
if (gpio_get_level(CONFIG_DHT22_DATA_GPIO) != signal_level) {
ets_delay_us(15);
}
*/
while (gpio_get_level(CONFIG_DHT22_DATA_GPIO) == signal_level) {
next_time = esp_timer_get_time();
if ((next_time - start_time) >= 1000 * 10) {
@@ -95,9 +101,9 @@ dht22_error dht22_read() {
* - if 26-28us -> 0 bit
* - if 70us -> 1 bit
*/
portENABLE_INTERRUPTS();
for (int byte_i = 4; byte_i >= 0; byte_i--) {
for (int bit_i = 0; bit_i <= 8; bit_i++) {
//portENABLE_INTERRUPTS();
for (int byte_i = 0; byte_i <= 4; byte_i++) {
for (int bit_i = 7; bit_i >= 0; bit_i--) {
elapsed_time = wait_for_signal_to_change_from(0);
if (elapsed_time == DHT22_TIMEOUT_ERROR) {
@@ -111,7 +117,7 @@ dht22_error dht22_read() {
if (elapsed_time < 60 || elapsed_time > 80) {
data[byte_i] |= (1 << bit_i);
}
ESP_LOGE(TAG, "elapsed_time: %lu", elapsed_time);
//ESP_LOGE(TAG, "bit: %i, byte: %i, elapsed_time: %lu", bit_i, byte_i, elapsed_time);
}
}