[PIC®/AVR®/dsPIC®产品] 求助PIC24F DSWDT寄存器设置方法

[复制链接]
 楼主| stormwind123 发表于 2025-3-7 16:06 | 显示全部楼层 |阅读模式
求助PIC24F DSWDT寄存器设置方法
weifeng90 发表于 2025-3-7 19:27 来自手机 | 显示全部楼层
这个问题怎么回答呢?是不知道怎么设置?还是不知道寄存器值怎么设置?
xiaoqi000 发表于 2025-3-27 23:54 | 显示全部楼层
如何在 PIC24F 系列微控制器中配置 DSWDT,使其在深度睡眠模式下工作:

c
复制
编辑
#include <xc.h>

// PIC24F MCU 的时钟配置
#define SYS_CLK    32000000    // 系统时钟为 32 MHz

void main(void) {
    // 选择 DSWDT 时钟源为 LPRC
    DSWDTOSbits.DSWDTCKS = 0; // 0 = Internal LPRC as clock source

    // 配置 DSWDT 超时周期(例如 2^15)
    DSWDTCONbits.DSWDTPS = 0b1111;  // 设置为 2^15 的超时周期

    // 启用 DSWDT
    DSWDTCONbits.DSWDTEN = 1;  // 启用 DSWDT

    // 使系统进入深度睡眠模式
    // 注意:具体的深度睡眠设置会根据不同的硬件架构进行调整
    // 在此可以调用相应的函数来进入深度睡眠模式

    while(1) {
        // 主循环,在此循环中应定期清除 DSWDT
        DSWDTCLR = 0x0001;  // 清除 DSWDT
    }
}
波尔街道的松柏 发表于 2025-6-23 20:59 | 显示全部楼层
IC24F 的 DSWDT(深度睡眠看门狗定时器)寄存器设置涉及配置DSWDTEN(使能位)、CLKSEL(时钟源选择)、POST(后分频比)和PRE(预分频比)。通过写入DSWDTPS和DSWDTCLK位段调整超时时间,需先解锁写保护(写0x55→0xAA到NVMKEY)。例如:
运行
NVMKEY = 0x55;
NVMKEY = 0xAA;
RCONbits.SWDTEN = 0;  // 禁用看门狗
您需要登录后才可以回帖 登录 | 注册

本版积分规则

590

主题

3621

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部