PCNT THRES0/1 IRQ not trigging.

henrik.basic
Posts: 3
Joined: Sat Mar 21, 2020 12:56 pm

PCNT THRES0/1 IRQ not trigging.

Postby henrik.basic » Sun May 24, 2020 1:51 pm

I've tried to use the THRES0/1 IRQ, but found a strange problem.

If I change the THRES0/1 value, the IRQ won't trigger until the counter value first has reached 0, then the set threshold value.
Ie
Set CNT = 0
Set H_LIM = 20
Count 5 pulses, so CNT = 5
Set THRES0 = 10
Count 5 pulses, so CNT = 10. I would expect an IRQ here, but don't get any.
Count 10 pulses. As CNT reaches 20 == H_LIM, it will be set to 0 instead. (And generate an IRQ.)
Count 10 pulses. So CNT = 10. This time, I do get the THRES0 IRQ.

Other ways to pass 0 will also work, like reseting the counter or using an up/down configuration and count past zero.

Am I doing something wrong? Is there any good workaround?
I would rather not reset the counter every time I want to set a new THRES0/1 value, since that would require a rather ugly cludge to fix the race conditions that can cause.

Who is online

Users browsing this forum: No registered users and 27 guests