搜索
bottom↓
回复: 8

新唐NUC029LAN看门狗(WDT)可以进定时中断,不触发复位,是什么问题?

[复制链接]

出215入118汤圆

发表于 2020-7-11 07:45:53 | 显示全部楼层 |阅读模式
有用过的坛友帮忙看一下,谢谢!
主要代码如下:
                    /* Unlock protected registers */
                    SYS_UnlockReg();
                //使用内部高速RC 22M
                CLK_EnableXtalRC(CLK_PWRCON_IRC22M_EN_Msk);
       
                CLK_WaitClockReady(CLK_CLKSTATUS_IRC22M_STB_Msk);
                //使用内部低速RC
                CLK_EnableXtalRC(CLK_PWRCON_IRC10K_EN_Msk);
       
                CLK_WaitClockReady(CLK_CLKSTATUS_IRC10K_STB_Msk);
       
                CLK_EnablePLL(CLK_PLLCON_PLL_SRC_HIRC, FREQ_50MHZ);
       
                CLK_WaitClockReady(CLK_CLKSTATUS_PLL_STB_Msk);
               
                CLK_SetCoreClock(FREQ_50MHZ);
       
                CLK_SetHCLK(CLK_CLKSEL0_HCLK_S_PLL, CLK_CLKDIV_HCLK(1));

                CLK_SetModuleClock(ADC_MODULE, CLK_CLKSEL1_ADC_S_HCLK, CLK_CLKDIV_ADC(96));
       
                CLK_SetModuleClock(UART0_MODULE, CLK_CLKSEL1_UART_S_HIRC, CLK_CLKDIV_UART(8));
               
                CLK_SetModuleClock(UART1_MODULE, CLK_CLKSEL1_UART_S_HIRC, CLK_CLKDIV_UART(8));
       
                CLK_SetModuleClock(TMR0_MODULE, CLK_CLKSEL1_TMR0_S_HCLK, CLK_CLKDIV_HCLK(1));
                //WDT使用内部低速RC
                CLK_SetModuleClock(WDT_MODULE, CLK_CLKSEL1_WDT_S_LIRC, 0);
               
                  /* Enable IP clock */
                    CLK->APBCLK = CLK_APBCLK_UART0_EN_Msk | CLK_APBCLK_TMR0_EN_Msk | CLK_APBCLK_ADC_EN_Msk | CLK_APBCLK_UART1_EN_Msk | CLK_APBCLK_WDT_EN_Msk;
               
                SystemCoreClockUpdate();

                SYS_LockReg();
               

                   WDT_Open(WDT_TIMEOUT_2POW8, WDT_RESET_DELAY_18CLK, TRUE, FALSE);
       
                如果取消这里的注释可以进WDT 定时器中断
                //WDT_EnableInt();
       
                //NVIC_EnableIRQ(WDT_IRQn);


                while(1)
                {
                        //注释后并不触发复位
                        //WDT_RESET_COUNTER();
                }

阿莫论坛20周年了!感谢大家的支持与爱护!!

月入3000的是反美的。收入3万是亲美的。收入30万是移民美国的。收入300万是取得绿卡后回国,教唆那些3000来反美的!

出0入33汤圆

发表于 2020-7-11 08:22:29 来自手机 | 显示全部楼层
虽然我没用过这个芯片,但其它很多芯片的看门狗的中断和复位是两回事,楼主你再看看手册吧。

出0入13汤圆

发表于 2020-7-11 09:44:18 | 显示全部楼层
WDT_Open(WDT_TIMEOUT_2POW8, WDT_RESET_DELAY_18CLK, TRUE, FALSE);
楼主, 你确定你开了WDT复位么?

出215入118汤圆

 楼主| 发表于 2020-7-11 11:04:01 | 显示全部楼层
weiwei4 发表于 2020-7-11 09:44
WDT_Open(WDT_TIMEOUT_2POW8, WDT_RESET_DELAY_18CLK, TRUE, FALSE);
楼主, 你确定你开了WDT复位么?  ...

  * @brief      Initialize WDT and start counting
  *
  * @param[in]  u32TimeoutInterval  Time-out interval period of WDT module. Valid values are:
  *                                 - \ref WDT_TIMEOUT_2POW4
  *                                 - \ref WDT_TIMEOUT_2POW6
  *                                 - \ref WDT_TIMEOUT_2POW8
  *                                 - \ref WDT_TIMEOUT_2POW10
  *                                 - \ref WDT_TIMEOUT_2POW12
  *                                 - \ref WDT_TIMEOUT_2POW14
  *                                 - \ref WDT_TIMEOUT_2POW16
  *                                 - \ref WDT_TIMEOUT_2POW18
  * @param[in]  u32ResetDelay       Configure WDT time-out reset delay period. Valid values are:
  *                                 - \ref WDT_RESET_DELAY_1026CLK
  *                                 - \ref WDT_RESET_DELAY_130CLK
  *                                 - \ref WDT_RESET_DELAY_18CLK
  *                                 - \ref WDT_RESET_DELAY_3CLK
  * @param[in]  u32EnableReset      Enable WDT time-out rest system function. Valid values are TRUE and FALSE.
  * @param[in]  u32EnableWakeup     Enable WDT time-out wake-up system function. Valid values are TRUE and FALSE.
  *
  * @return     None
  *
  * @details    This function makes WDT module start counting with different time-out interval, reset delay period and choose to \n
  *             enable or disable WDT time-out reset system or wake-up system.
  * @note       Please make sure that Register Write-Protection Function has been disabled before using this function.

第三个参数为TRUE就是打开WDT复位啊。

出0入13汤圆

发表于 2020-7-11 11:31:46 | 显示全部楼层
snowy 发表于 2020-7-11 11:04
* @brief      Initialize WDT and start counting
  *
  * @param  u32TimeoutInterval  Time-out int ...

那就跟着这个函数看看是怎么配置的
最近也有用NUC029, 但我没用过最新版的库函数, 以前也基本没开过WDT
以前试过旧版本的库会有bug的问题, 一步一步跟下去看看, 有可能会发现问题

出215入118汤圆

 楼主| 发表于 2020-7-12 10:32:28 | 显示全部楼层
weiwei4 发表于 2020-7-11 11:31
那就跟着这个函数看看是怎么配置的
最近也有用NUC029, 但我没用过最新版的库函数, 以前也基本没开过WDT
...

找到原因了,开WDT,需要先调用SYS_UnlockReg();

这样写就可以了
SYS_UnlockReg();
WDT_Open(WDT_TIMEOUT_2POW18, WDT_RESET_DELAY_130CLK, TRUE, FALSE);
SYS_LockReg();

也可以用ICP工具在OPTION BYTES里强制上电打开WDT。

出215入118汤圆

 楼主| 发表于 2020-7-12 10:52:20 | 显示全部楼层
喂狗这样写:
                        SYS_UnlockReg();
                       
                        WDT_RESET_COUNTER();
                       
                        SYS_LockReg();

出16170入6148汤圆

发表于 2020-7-14 19:35:11 来自手机 | 显示全部楼层
打赏!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏
https://www.amobbs.com/thread-5735948-1-1.html

出215入118汤圆

 楼主| 发表于 2020-7-14 22:11:57 | 显示全部楼层
armok. 发表于 2020-7-14 19:35
打赏!

庆祝论坛“打赏”功能实施, 现在开始发技术主题,可以获得打赏

谢谢老大!
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-4-26 02:54

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表