博客
关于我
MSP430FR6989之看门狗
阅读量:389 次
发布时间:2019-03-05

本文共 1159 字,大约阅读时间需要 3 分钟。

MSP430FR6989的看门狗配置相对简单,主要通过配置WDTCTL寄存器即可实现。以下是详细的步骤和相关配置说明:

  • WDTCTL寄存器配置

    • WDTPW:每次设置WDTCTL寄存器时,需向WDTPW寄存器写入0x05A,确保看门狗的安全性。
    • WDTHOLD:控制看门狗的启用或禁用。设置为0停止,设置为1启用。
    • WDTSSEL:设置看门狗时钟源。在本项目中,晶振频率为32.768KHz,接在LFX引脚上,因此需将WDTSSEL配置为ACLK引脚。
    • WDTTMSEL:设置为0进入看门狗模式,为1进入间隔定时器模式。
    • WDTCNTCL:喂狗功能,确保看门狗不会自动复位。
    • WDTIS:设置看门狗的分频系数。为实现1秒的定时间隔,需将WDTIS设为32768。
  • 晶振源配置

    • 32.768KHz的晶振接在LFX引脚上,确保WDTSSEL正确配置为ACLK。
  • 代码实现:使用DriverLib库实现看门狗配置和控制:

    #include 
    int main(void) { volatile uint32_t i; WDT_A_hold(WDT_A_BASE); // 停止看门狗 WDT_A_initWatchdogTimer(WDT_A_BASE, WDT_A_CLOCKSOURCE_ACLK, WDT_A_CLOCKDIVIDER_32K); // 配置时钟源和分频 WDT_A_start(WDT_A_BASE); // 启动看门狗 GPIO_setAsOutputPin(GPIO_PORT_P1, GPIO_PIN0); // 配置LED引脚 GPIO_setOutputHighOnPin(GPIO_PORT_P1, GPIO_PIN0); // LED初始高状态 PMM_unlockLPM5(); // 解锁低功耗模式 while (1) { for (i = 10000; i > 0; i--) { // 延时循环 GPIO_toggleOutputOnPin(GPIO_PORT_P1, GPIO_PIN0); // LED闪烁 WDT_A_resetTimer(WDT_A_BASE); // 喂狗 } }}
  • 验证与优化

    • 初始配置:10,000次循环,延时约1.024秒,喂狗成功,LED正常闪烁。
    • 延时增加:100,000次循环,延时约10.24秒,喂狗失败,LED保持高状态。
    • 喂狗优化:在延时循环中添加喂狗指令,确保看门狗不会自动复位。
  • 通过以上配置和优化,MSP430FR6989的看门狗功能能够有效防止程序跑飞,确保系统稳定运行。

    转载地址:http://ldiwz.baihongyu.com/

    你可能感兴趣的文章
    Objective-Cfor循环实现Factorial阶乘算法 (附完整源码)
    查看>>
    Objective-C——判断对象等同性
    查看>>
    objective-c中的内存管理
    查看>>
    Objective-C之成魔之路【7-类、对象和方法】
    查看>>
    Objective-C享元模式(Flyweight)
    查看>>
    Objective-C以递归的方式实现二叉搜索树算法(附完整源码)
    查看>>
    Objective-C内存管理教程和原理剖析(三)
    查看>>
    Objective-C实现 Greedy Best First Search最佳优先搜索算法(附完整源码)
    查看>>
    Objective-C实现 jugglerSequence杂耍者序列算法 (附完整源码)
    查看>>
    Objective-C实现 lattice path格子路径算法(附完整源码)
    查看>>
    Objective-C实现1000 位斐波那契数算法(附完整源码)
    查看>>
    Objective-C实现2 个数字之间的算术几何平均值算法(附完整源码)
    查看>>
    Objective-C实现2d 表面渲染 3d 点算法(附完整源码)
    查看>>
    Objective-C实现2D变换算法(附完整源码)
    查看>>
    Objective-C实现3n+1猜想(附完整源码)
    查看>>
    Objective-C实现3n+1猜想(附完整源码)
    查看>>
    Objective-C实现9x9乘法表算法(附完整源码)
    查看>>
    Objective-C实现9×9二维数组数独算法(附完整源码)
    查看>>
    Objective-C实现A*(A-Star)算法(附完整源码)
    查看>>
    Objective-C实现A-Star算法(附完整源码)
    查看>>