Part Number:MSP430FR6043
例程中源码如下
// Enable WDT timer
// Delay set to ~32K @ ~10K = 3.2sec
WDT_A_initWatchdogTimer(__MSP430_BASEADDRESS_WDT_A__, WDT_A_CLOCKSOURCE_VLOCLK, WDT_A_CLOCKDIVIDER_32K);
按照代码分析时钟为10kHz,计算出的时间10000/2^15=0.305175
但是备注有显示3.2S。请问怎么计算的。
我使用板子使用例程中的谁知,实际测试了一下,也在3-4秒之间。
Ben Qin:
你好,能否提供下例程的具体路径?看门狗也可以看作是一个计时器,其复位时间也就是周期与普通的计时器计算无异。
,
Jason Xu:
UltrasonicGasFR6043_02_30_00_01\examples\common\hal\fr6043EVM\hal_system.c
函数名如下void hal_system_WatchdogInit(void)
,
Ben Qin:
这里的WDT_A_CLOCKDIVIDER_32K对应的是0x0004.
指的是在32.768khz下是1s。但这里时钟源使用的VLO,默认是10khz,缩小了3.2倍,对应的周期也扩大3.2倍,即3.2s。
,
Jason Xu:
是通过比例计算的吗?
有公式吗?
,
Ben Qin:
公式应该是手册上提到的这个,不过这样算的话就与你的计算结果一致。
看下面这篇帖子,应该是要以公式计算的为准。
(+) Watchdog Timer period calculation for MSP430F5418A – MSP low-power microcontroller forum – MSP low-power microcontrollers – TI E2E support forums