查看: 3978|回复: 0

[原创] 【LPC11U68开发板】+ 8、wwdtc的学习

[复制链接]
  • TA的每日心情
    开心
    昨天 14:05
  • 签到天数: 1509 天

    连续签到: 11 天

    [LV.Master]伴坛终老

    152

    主题

    3190

    帖子

    31

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    8755
    最后登录
    2025-8-30
    发表于 2018-11-29 21:59:18 | 显示全部楼层 |阅读模式
        wwdtc例程的学习
       
        一、手册资料
       
        1.1、WWDTC框图
        100.png

        1.2、时钟框图
             101.png


        二、程序部分
         
        2.1、wwdtc初始化
    1. void  WWDTC_Init(void)
    2. {
    3.         uint32_t wdtFreq;
    4.        
    5.         Chip_Clock_SetWDTOSC(WDTLFO_OSC_0_60, 64); //WDT oscillator freq = 0.6MHz divided by 64 = 9.375khz
    6.         Chip_SYSCTL_PowerUp(SYSCTL_SLPWAKE_WDTOSC_PD);  //Enable the power to the WDT
    7.         wdtFreq = Chip_Clock_GetWDTOSCRate() / 4;  //获取WDT时钟频率
    8.         Chip_WWDT_Init(LPC_WWDT);  //初始化WWDT时钟
    9.         Chip_WWDT_SelClockSource(LPC_WWDT, WWDT_CLKSRC_WATCHDOG_WDOSC);  //选择时钟源
    10.         Chip_WWDT_SetTimeOut(LPC_WWDT, wdtFreq * 2);                //设置WDT超时时间
    11.         Chip_WWDT_Feed(LPC_WWDT);                                                                                                //喂狗
    12.         Chip_WWDT_SetWarning(LPC_WWDT, 512);                                                //设置警告中断
    13.         Chip_WWDT_SetWindow(LPC_WWDT, wdtFreq * 3);                        //设置WWDT窗口时间
    14.         Chip_WWDT_SetOption(LPC_WWDT, WWDT_WDMOD_WDRESET);    //WWDT超时复位
    15.         Chip_WWDT_ClearStatusFlag(LPC_WWDT, WWDT_WDMOD_WDTOF | WWDT_WDMOD_WDINT);  //清除中断标志位
    16.         NVIC_ClearPendingIRQ(BOD_WDT_IRQn);                                //清除挂起的中断
    17.         NVIC_EnableIRQ(BOD_WDT_IRQn);                                                        //使能中断
    18.         Chip_WWDT_Start(LPC_WWDT);                                                                //开始开门狗
    19. }
    复制代码
         2.2、wwdtcz中断程序   
    1. void BOD_WDT_IRQHandler(void)
    2. {
    3.         uint32_t wdtStatus = Chip_WWDT_GetStatus(LPC_WWDT);   //获取中断状态

    4.        

    5.         if (wdtStatus & WWDT_WDMOD_WDTOF)   //WWDT超时
    6.         {
    7.                 Chip_WWDT_UnsetOption(LPC_WWDT, WWDT_WDMOD_WDEN);             //停止WWDT
    8.                 Chip_WWDT_ClearStatusFlag(LPC_WWDT, WWDT_WDMOD_WDTOF); //清除WWDT超时中断标志位   
    9.                 Chip_WWDT_Start(LPC_WWDT);                                                                                                                 //需要重新启动
    10.                
    11.         }

    12.         if (wdtStatus & WWDT_WDMOD_WDINT)    //警告中断
    13.         {
    14.                 Chip_WWDT_ClearStatusFlag(LPC_WWDT, WWDT_WDMOD_WDINT);        //清除中断标志位
    15.                 //Chip_WWDT_Feed(LPC_WWDT);                                                                                                                                //喂狗
    16.                 Board_LED_Toggle(0);                                                                                                                                           //红色LED灯翻转
    17.         }
    18. }
    复制代码

        2.3、主程序
       
    1. int main(void)
    2. {
    3.         unsigned int cn=0;
    4.         unsigned char ts=0;
    5.         SystemCoreClockUpdate();
    6.         Board_Init();
    7.         LED_Init();
    8.         //TIMER16_Init();
    9.         //RTC_Init();
    10.         WWDTC_Init();
    11.         Board_LED_Toggle(2);
    12.         DEBUGOUT("    nxpic \r\n");
    13.         while (1)
    14.         {
    15.         }

    16.         return 0;
    17. }
    复制代码

         三、程序执行结果
         
            3.1、警告中断里面不喂狗,程序不停的复位重启
            串口输出数据
             201.png   
           3.2、警告中断里面喂狗,程序不会重启
           主板上红色LED翻转












































    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-8-31 06:43 , Processed in 0.085909 second(s), 22 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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