您好,
大约一个月前,我提出了一个关于看门狗计时器的问题,但没有得到明确的答案。
我有以下设置的寄存器。 我先禁用看门狗计时器,然后在 SCSR 中,WDOVERRIDE 设置为0,看门狗中断启用。 在这种情况下,看门狗计时器是禁用还是启用的?
无效 InitWatchd(无效)
{
ASM(" EALLOW "); //启用 EALLOW 保护寄存器访问
//--禁用监视程序计时器
WdRegs.WDCR.ALL = 0x0068;
//第15-70位 : 保留
//位6 1: WDDIS,1=禁用 WD
//位5-3 101: WDCHK,WD 校验位,始终写入101b
//位2-0 000 : WDPS,WD 预页位,000:WDCLK=OSCCLK/512/1
//--系统和控制寄存器
WdRegs.scSR.all = 0x0000;
//第15-3位 : 保留
//位2 0: WDINTS,WD 中断状态位(只读)
//位1 0: WDENINT,0= WD 导致重置,1= WD 导致 WDINT
//位0 : WDOVERRIDE,写入1以禁用 WD (只清除)
WdRegs.WDWCR.All = 0x0000;
//第15-9位 : 保留
//位8 0: FIRSTKEY (只读)
//位7-0 0x00: 最小,最小保养间隔- 0x00不最小
ASM(" EDIS"); //禁用 EALLOW 保护寄存器访问
//--启用监视程序中断
PieCtrlRegs.PIEIER1.Bit.INTx8 =1; //在 PIE 组#1中启用 WAKEINT (LPM/WD)
IER |= 0x0001; //在 IER 中启用 INT1以启用 PIE 组1
}// InitWatchd()结束