stormwind123 发表于 2025-3-7 16:06

求助PIC24F DSWDT寄存器设置方法

求助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;// 禁用看门狗

花开了相爱吧 发表于 2025-9-19 17:48

PIC24F 的 DSWDT(深度睡眠看门狗)寄存器设置:先配置 DSWDTPS<2:0> 设置分频比,确定超时周期;通过 DSWDTEN 位使能模块;SLEEP 指令触发深度睡眠后,DSWDT 开始计数,超时会唤醒或复位。需注意先解锁配置寄存器,操作后锁定,确保设置生效。
页: [1]
查看完整版本: 求助PIC24F DSWDT寄存器设置方法