Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
mbed-classic: BUGFIX for timer when using wait_ms from interrupt context
Previously if a user used wait[_ms,_us] in interrupt context the device would hang indefinitely. This was due to incrementing overflowCount from interrupt context only. This meant that if a user used wait[_ms,_us] in an ISR with the same or greater interrupt priority, it would result in an infinite loop as the overflowCount variable would never be incremented, and wait[_ms,_us] would never return. This patch simply applies a better solution for the race condition mentioned in the previous commit. It instead disables the timer1 interrupt and increments the overflowCount variable, preventing the race condition whilst supporting wait[_ms,_us] in interrupt context.
- Loading branch information