Configuration of Watchdog Timer Interrupt in PSoC 4 Devices - KBA222373

Version 2

    Version: **


    Note: This article applies to the following product families:

    PSoC 4100

    PSoC 4200

    PSoC 4100 BLE

    PSoC 4200 BLE

    PRoC BLE

    PSoC 4200L

    PSoC 4100M

    PSoC 4200M

    PSoC 4000S


    How do I resolve the following PSoC® Creator™ clock error when the Global Signal Reference Component is configured as a Watchdog Timer Interrupt (WDTInt)?


    Figure 1. WDT Interrupt Clock Error



    There are two options to configure the WDT interrupt handler in these product families: auto-generated and user-provided selected per Design Wide Resource settings. This error occurs when you configure the Watchdog Timer Interrupt to ‘isr_1’ interrupt handler in the top schematic using the Global Signal Reference Component. On the other hand, Design Wide Resource settings select ‘Timer (WDT) ISR’ as auto-generated.


    Figure 2: Configuration of Global Signal Reference Component for WDTInt

    If you select the auto-generated option, the CySysWdtIsr() function is registered as the WDT interrupt handler. You can use the CySysWdtGetInterruptCallback() and CySysWdtSetInterruptCallback() functions to get and set callbacks for each particular counter and use the CySysWdtEnableCounterIsr() and CySysWdtDisableCounterIsr() functions to enable and disable servicing of the registered callbacks for each particular counter.


    Thus, you need to either remove the Global Signal Reference Component or change the interrupt generation option to user-provided. The latter can be done at the Clocks tab of the Design Wide Resources (cydwr) window. Click on the Edit Clock button; in the Configure System Clocks window, click on the Low Frequency Clocks tab as shown in Figure 3.


    Figure 3: Configuration of User-Provided Timer (WDT) ISR

    Once the user provided option is selected, the CySysWdtIsr() function is not registered as the WDT interrupt handler. You can register either a custom handler or the CyWdtIsr() function by using the CyIntSetVector() API. For more information on low-frequency clock and WDT configuration, refer to the LFCLK Component datasheet from the System Reference Guide (accessed from the Help menu of PSoC Creator).