adafruit / adafruit/DHT-sensor-library

ESP32: Interrupts do not get re-enabled

Open
#225 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
2.2k
Forks
1.4k
PR merge metrics
No merged PRs in 30d

Description

It appears that at least gcc 14.2.1 does not call the class's ~InterruptLock() destructor and hence interrupts don't get re-enabled. I rely on interrupts for other functionality and they stop forever once a DHT read is triggered.

Either keeping interrupts on (my ISR is very short) or disabling (1x) & re-enabling (3x !!) interrupts in the read() function both work as expected.

This might also be the casue of #211.

Contributor guide

Open the contributing guide

Research direction

The report identifies read() and the InterruptLock destructor as the relevant entry points, and references issue #211. Start by reproducing a DHT read with gcc 14.2.1 while another interrupt is active; done means interrupts remain functional after the read, with the behavior verified against the reported compiler setup.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
embedded-iot
Issue type
Bug
Difficulty
4/5
Estimated time
3-5 days
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
35/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.