博客
关于我
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/

    你可能感兴趣的文章
    python函数注释,参数后面加冒号:,函数后面的箭头→是什么?
    查看>>
    Python+Selenium+Threading进行兼容性测试
    查看>>
    Python+selenium+unittest的GUI自动化框架实现
    查看>>
    python函数拟合不规则曲线_Python计算&绘图——曲线拟合问题(转)
    查看>>
    python函数定义的基本格式_零基础学python-2.19 定义函数、调用函数与默认参数
    查看>>
    Python+Selenium之数据驱动测试的实现
    查看>>
    python函数定义与使用+返回值简解
    查看>>
    Python+Selenium登录
    查看>>
    Python日期时间模块
    查看>>
    Python函数合集:足足68个内置函数请收好!
    查看>>
    Python+Selenium自动化测试项目实战
    查看>>
    Python+Selenium自动化测试项目实战【建议收藏】
    查看>>
    Python+Selenium自动化测试:Page Object模式
    查看>>
    python+selenium进行cnblog的自动化登录测试
    查看>>
    Python函数只返回第一个值而不是数据框
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(上)
    查看>>
    Python+SQL实战:京东用户行为数据分析案例解析(下)
    查看>>
    PYTHON+Twisted+sqlanydb=ABORT()
    查看>>
    Python函数之返回值、作用域和局部变量
    查看>>
    Python+统计学 | 探索常用的数据分析统计分布
    查看>>