cancel
Showing results for 
Search instead for 
Did you mean: 

Undocumented behavior of capture/compare registers

rbraun
Associate II

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.

1 ACCEPTED SOLUTION

Accepted Solutions

> The expected behavior is to never have a compare event such as an interrupt

That's an incorrect expectation.

waclawekjan_0-1725354610922.png

 

JW

 

View solution in original post

6 REPLIES 6

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.

@STOne-32  

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

What is the behaviour to expect, and how is the observed one different from it? 

JW

BarryWhit
Lead II

 

BarryWhit_0-1725335737720.jpeg

?

- If someone's post helped resolve your issue, please thank them by clicking "Accept as Solution".
- Please post an update with details once you've solved your issue. Your experience may help others.

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.

> The expected behavior is to never have a compare event such as an interrupt

That's an incorrect expectation.

waclawekjan_0-1725354610922.png

 

JW

 

Thank you very much.