You are here

Using the Watchdog Timer to Reset PSoC® 3/5LP – KBA89152 | Cypress Semiconductor

Support & Community

Using the Watchdog Timer to Reset PSoC® 3/5LP – KBA89152

Last Updated: February 13, 2014

How can you use the watchdog timer (WDT) to reset PSoC® 3 or PSoC 5LP?


The WDT feature can be implemented in PSoC 3 or PSoC 5LP using the two APIs CyWdtStart and CyWdtClear. The hardware implementation of the WDT prevents any modification of the timer once it has been enabled. It also prevents the timer from being disabled once it has been enabled, which protects the WDT from changes caused by errant code.

The WDT can be used when there is a chance that a code might get stuck inside an interrupt. Please note that the WDT should be cleared using the API CyWdtClear to prevent the PSoC from getting reset. So in this case, you can write CyWdtClear inside the interrupt and if the interrupt is executed normally, the API will clear the WDT, preventing the PSoC from getting reset. On the other hand, if the code gets stuck inside the interrupt for a time greater than the watchdog period time, the PSoC will get reset.

More information about the APIs used for WDTs can be obtained from the System Reference Guide (PSoC Creator > Help > Documentation > System Reference > System Reference Guide).

For example, in a typical application you first enable the WDT.


This will set the WDT for a time period of 2.048–3.072 s. Now you need to make sure that the WDT is cleared before this time. If not, the device will get reset.

So every 2.048–3.072 s, you need to call the CyWdtClear() API to clear the WDT.

Provide feedback on this article

Browse KB By Product

Browse KB by Type