ISR connected to Timer Interrupt is being executed multiple times.

Question: The ISR connected to Timer interrupts seems to get executed multiple times. Why is it so and how to solve this problem?

 

Answer:

This is a know issue in Fixed Function Timer User Module of PSoC 3 ES2 Silicon.

The problem definition is as follows:

When using an external clock, clearing of the ISR bit in a Fixed Function Timer is not synchronous with respect to the timer clock. This may result in an ISR becoming executed multiple times for a single interrupt condition. This issue does not apply when using an external clock.

Work around for this issue is to change the Fixed function to UDB Block. And this issue has already been resolved in PSoC 3 ES3 & Production release Silicons.