- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am using SmartSense full auto-tune and I would like to change the polling rate to save power if there is no activity for a long time. Is there an example code for this? I tried calling CapSense_1_ScanAllWidgets() after a delay after I called CapSense_1_ProcessAllWidgets() but the processor seems to wake up immediately after I enter sleep. Do I need to disable/clear capsense interrupts? I tried this but it didn't have any effect:
CY_SET_REG32(CapSense_1_CSD_INTR_PTR, CapSense_1_CSD_INTR_ALL_MSK);
(void)CY_GET_REG32(CapSense_1_CSD_INTR_PTR);
NVIC_DisableIRQ(CapSense_1_ISR_cfg.intrSrc);
Solved! Go to Solution.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
There is a PSoC4 Low power CapSense Appnote (http://www.cypress.com/file/230796/download) that can be used as reference for PSoC 6.
Basically you go into DeepSleep and periodically wake up by WDT interrupt and start the scan. Then you wait in sleep mode until the CapSense interrupt is generated (scan finished) to process the data (CapSense_ProcessAllWidgets() and user defined actions). After that you go back to DeepSleep again and wait for the next WDT interrupt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I disabled the interrupts which were from a different source but I noticed current doesn't change much with capsense polling period increased. The only way to reduce current significantly seems to be with deep sleep. Is there a way to use capsense with deep sleep between polling? Using 1s RTC to wake up seems too slow to poll for touch.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi,
There is a PSoC4 Low power CapSense Appnote (http://www.cypress.com/file/230796/download) that can be used as reference for PSoC 6.
Basically you go into DeepSleep and periodically wake up by WDT interrupt and start the scan. Then you wait in sleep mode until the CapSense interrupt is generated (scan finished) to process the data (CapSense_ProcessAllWidgets() and user defined actions). After that you go back to DeepSleep again and wait for the next WDT interrupt.
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I am running capsense on CM0 and I cannot get any interrupts for WDT or MCWDT when I am in deep sleep. I tried the simple WDT and MCWDT examples which are all for CM4 and I get the same result. I copy all the code from CM4 to CM0 and change interrupt assignment to CM0 vector 3. Do you know what is the problem?
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
I need to change interrupt enable code from
NVIC_EnableIRQ(srss_interrupt_mcwdt_1_IRQn);
to
NVIC_EnableIRQ(Mcwdt_Int_cfg.intrSrc);
It works now, thanks.