您的位置:首页 > 其它

DSP时钟之看门狗

2014-11-04 21:18 134 查看
1.什么是看门狗?     

    看门狗是一个独立于CPU的计数单元,首先大家要理解独立。它是一个独立的电路,与CPU的定时计数器没有关联的,所以即使工作在睡眠模式,看门狗还是在工作的。

    看门狗的作用:防止系统不能正常工作,我们俗称的“跑飞”,当程序跑飞的时候,看门狗就可以监测到,从而让程序复位,使程序工作正常。

2.与看门狗相关的寄存器

看门狗定时器主要有4个寄存器——即看门狗计数寄存器(WDTIM)、看门狗周期寄存器(WDPRD)、看门狗控制寄存器(WDTCR)和看门狗控制寄存器2(WDTCR2)。
        看门狗计数寄存器和看门狗周期寄存器都是16位寄存器,它们协同工作完成计数功能。
        看门狗周期寄存器WDPRD存放计数的初始值,当计数寄存器的值减到0后,将把周期寄存器中的数载入到计数寄存器中。当控制寄存器中的PSC位减到0之前或看门狗计数器被复位时,计数寄存器将进行减1计数。
3 配置看门狗定时器
   初始化和使能看门狗定时器的步骤:
   1.将主计数器周期PRD装入看门狗周期寄存器WDPRD
   2.设置看门狗定时器控制寄存器WDTCR的模式bit(WDOUT,SOFT和FREE),以及TDDR里的预定标控制值
   3.往看门狗定时器的控制寄存器2(WDTCR2)中的WDKEY写入关键值5C6H,使看门狗定时器进入预激活状态
   4.写关键值A7EH到WDKEY中,置位WDEN,将预定标模式bit(PREMD)的值写到WDTCR2中。这第二个值完成了关键值序列,表示一个实际的服务序列,WDEN = 1使能看门狗定时器,

3 看门狗定时器的应用

应用看门狗定时器的芯片支持函数首先要包含csl_wdtim.h头文件,接下来定义看门狗定时器的配置结构:

WDTIM_Config MyConfig = {
0x0060, /* Counter */
0x1000, /* Period */
0x0000, /* Control */
0x1000 /* Secondary control */
};

配置看门狗定时器需要调用看门狗配置函数:

WDTIM_config(&MyConfig);

在配置好看门狗定时器后调用开始函数,该函数的作用是将看门狗定时器控制寄存器2的WDEN位置成1:

WDTIM_start();

在运行看门狗开始函数后,看门狗开始递减计数,在计数器减到0之前需要周期性地向WDKEY字段写入A5C5h和A7Eh,否则看门狗定时器将会发生超时事件从而触发中断或复位,该操作可以通过调用WDTIM_service()函数来完成。
WDTIM_service();

  看门狗时钟周期 = 外部时钟周期 * 2的N次方(N为看门狗计数器的位数)

     
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息