Skip to content
Discussion options

You must be logged in to vote

Hi @johnp789,

The issue here is that on RP2040 the timers are so-called "soft timers", which means the timer callbacks run via the same mechanism as micropython.schedule(). While _do_check() is running in a scheduled callback, the _timeout_handler callback will be queued but it won't be executed.

The best way around this might depend on the details of the work you're doing in _do_check(). Depending, you could perhaps look at running the _do_check function on the other CPU using the _thread module. Or, depending on what action the timeout needs to take, you could possibly use machine.WDT - this would reset the system on timeout though, which maybe isn't what you need.

Replies: 1 comment 2 replies

Comment options

You must be logged in to vote
2 replies
@johnp789
Comment options

@projectgus
Comment options

Answer selected by johnp789
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
2 participants