2024-09-02 08:32 AM
Hello,
I tried to set a capture/compare register to a value beyond that of the auto-reload register, and the timer I used (TIM8) behaved as if the value had not been written. Reading back gives the expected value though. I haven't dug more but I'm curious : is there some undocumented behavior that prevents the shadow capture/compare register from having the value of the preload register if that value is higher than the auto-reload register ?
Please don't ask why I would do such a thing, that's just not the point.
Thanks.
Solved! Go to Solution.
2024-09-03 02:10 AM
> The expected behavior is to never have a compare event such as an interrupt
That's an incorrect expectation.
JW
2024-09-02 09:00 AM
It doesn't sanity check the content, they are just registers, there might be a comparator or equivalence signal, but I'm pretty sure it doesn't limit the setting, but rather drives an output used elsewhere in the TIM implementation
Some one would need to dig into the RTL to determine specific implementation detail.
2024-09-02 01:06 PM
What is the behaviour to expect, and how is the observed one different from it?
JW
2024-09-02 08:55 PM - edited 2024-09-02 09:49 PM
?
2024-09-03 01:45 AM
Right, my bad.
The expected behavior is to never have a compare event such as an interrupt, since the value of the counter can never become equal to that of the C/C register. What I observe is that I do get interrupts, and the value of the counter is barely above zero, which is the previous value of the C/C register, as if the new value was somewhat ignored.
2024-09-03 02:10 AM
> The expected behavior is to never have a compare event such as an interrupt
That's an incorrect expectation.
JW
2024-09-03 02:35 AM
Thank you very much.