打印

4014触摸芯片相关问题

[复制链接]
1890|5
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
AN90114自带例程[img]file:///D:\LIN\QQjilu\2477669460\Image\C2C\`{_FQE`_~9(@RX$3ZTP[P]Y.jpg[/img]   
       
        /* Update the match register for generating a periodic WDT ISR.
    Note: In order to do a periodic ISR using WDT, Match value needs to be
    updated every WDT ISR with the desired time value added on top of the
    existing match value */

    CySysWdtWriteMatch(ILODelayCycles);





                if(proximityState && proxComplete)
                {                               
                        /* Configure the wake up period to 30ms */                       
                        ILODelayCycles = WDT_MATCH_VALUE_30MS;       
                       
                        /* Initialize the flag that is used to indicate a successful scan of the touchpad*/
                        touchpadComplete = TRUE;
                       
                        /* Scan touchpad widget */
                        CapSense_ScanEnabledWidgets();
                                               
                        /* Enter and remain the CapSense scan is complete */
                        while(CapSense_IsBusy() != 0)



/******************************************************************************
* Function Name: WDT_ISR_Handler
*******************************************************************************
*
* Summary:
* Interrupt Service Routine for the watchdog timer interrupt. The periodicity
* of the interrupt is depended on the match value written into the counter
* register using API - CySysWdtWriteMatch().
*
******************************************************************************/
CY_ISR(WDT_ISR)
{
        /* Flag to indicate a non-CSD interrupt*/
        intrFlag = TRUE;

        /* Clear WDT interrupt */
        CySysWdtClearInterrupt();

        /* Write WDT_MATCH with current match value + desired match value */
        CySysWdtWriteMatch((uint16)CySysWdtReadMatch()+ILODelayCycles);
}


一开始只需要  CySysWdtWriteMatch(ILODelayCycles); 填入 ILODelayCycles 比较值即可
为什么在看门狗函数里 还要加上 CySysWdtReadMatch()  ??


网友们有空帮忙看下,谢谢!




99.jpg (262.91 KB )

Creator3.3软件自带4014例程AN90114

Creator3.3软件自带4014例程AN90114
沙发
wsp1008| | 2017-4-27 10:44 | 只看该作者
感觉应该是每次触发中断WDT timer技术都不会自动清零,再次写WDT_MATCH的时候只能在原来计数基础上加desired value
一开始的计数值是0,不需要考虑原始值

使用特权

评论回复
板凳
leijixiaomile| | 2017-5-2 14:45 | 只看该作者
wsp1008 发表于 2017-4-27 10:44
感觉应该是每次触发中断WDT timer技术都不会自动清零,再次写WDT_MATCH的时候只能在原来计数基础上加desire ...

楼主正解,理解的深刻,学习了。

使用特权

评论回复
地板
zhaoruzhe| | 2017-5-4 15:32 | 只看该作者
wsp1008 发表于 2017-4-27 10:44
感觉应该是每次触发中断WDT timer技术都不会自动清零,再次写WDT_MATCH的时候只能在原来计数基础上加desire ...

正解!!

使用特权

评论回复
5
gll123| | 2017-5-25 15:45 | 只看该作者
正解,学习了~

使用特权

评论回复
6
hejiangkai| | 2017-7-20 21:59 | 只看该作者
锦锐代理:  触摸MCU  1T8051内核,宽电压1.8—5.5V,带触摸按键、LCD、LED驱动。  销售工程师:  何生 :18575699231      QQ :2027871415   

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

1

帖子

0

粉丝