Microchip 系列:PIC18F46J50 系列 (低功耗)_19.看门狗定时器.docxVIP

Microchip 系列:PIC18F46J50 系列 (低功耗)_19.看门狗定时器.docx

  1. 1、本文档共26页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

PAGE1

PAGE1

19.看门狗定时器

19.1看门狗定时器概述

看门狗定时器(WatchdogTimer,WDT)是一种硬件定时器,用于检测和防止单片机出现死锁或失控的情况。PIC18F46J50系列单片机中的看门狗定时器可以通过定时复位单片机来确保系统在异常情况下恢复到正常工作状态。WDT通常在系统启动时启用,并在运行过程中定期被清除,以防止定时器溢出导致复位。

19.2看门狗定时器的工作原理

PIC18F46J50系列单片机中的看门狗定时器是一个独立的定时器,它使用内部振荡器作为时钟源。WDT的时钟源可以选择为内部低速振荡器(LFINTOSC)或外部振荡器(FOSC)。WDT的时间周期可以通过配置寄存器来调整,具体包括WDT预分频器的设置。

WDT的工作原理可以总结为以下几点:

时钟源选择:WDT可以选择内部低速振荡器或外部振荡器作为时钟源。

预分频器设置:WDT的时间周期可以通过预分频器进行调整,范围从2ms到16.4s。

定时复位:如果WDT在设定的时间周期内没有被清除,将会触发系统复位。

清除方法:WDT可以通过软件清零或硬件清零(如外部引脚复位)来防止复位。

19.3看门狗定时器的配置

PIC18F46J50系列单片机中的看门狗定时器可以通过配置寄存器WDTCON来设置。主要的配置选项包括:

WDTE:WDT使能位,决定WDT是否启用。

SWDTEN:软件使能位,决定WDT是否可以通过软件启用。

WDTPS:WDT预分频器选择位,决定WDT的时间周期。

19.3.1配置寄存器WDTCON

WDTCON寄存器的结构如下:

位|描述|备注|

|—-|—————————-|—————|

7|WDTE|WDT使能位|

6|SWDTEN|软件使能位|

5:0|WDTPS[5:0]|WDT预分频器选择位|

WDTE:当此位为1时,WDT使能;为0时,WDT禁用。

SWDTEN:当此位为1时,WDT可以通过软件使能;为0时,WDT只能通过硬件使能。

WDTPS[5:0]:用于选择WDT的预分频器,具体时间周期如下表所示:

WDTPS[5:0]|时间周期(LFINTOSC)|时间周期(FOSC)|

|———–|——————-|—————–|

000000|2ms|2ms|

000001|4ms|4ms|

000010|8ms|8ms|

…|…|…|

111111|16.4s|16.4s|

19.3.2配置示例

以下是一个配置WDT的示例代码,假设使用内部低速振荡器作为时钟源,并设置时间为1s。

#includexc.h

//配置WDT使用内部低速振荡器,时间为1s

voidconfigureWDT(){

//使能WDT

WDTCONbits.WDTE=1;

//通过软件使能WDT

WDTCONbits.SWDTEN=1;

//设置WDT预分频器为1s

WDTCONbits.WDTPS=0b011110;//0b011110对应1s

}

//清零WDT

voidclearWDT(){

CLRWDT();//清零WDT

}

intmain(){

//配置WDT

configureWDT();

//主循环

while(1){

//执行系统任务

//...

//定期清零WDT

clearWDT();

}

return0;

}

19.4看门狗定时器的应用

看门狗定时器在实际应用中非常有用,特别是在嵌入式系统中。它可以确保系统在出现死锁或失控时自动复位,从而避免系统长时间处于非正常状态。以下是一些常见的应用场景:

防止死锁:在系统运行过程中,如果某个任务陷入无限循环或长时间阻塞,WDT会在设定的时间内溢出并复位系统。

防止单片机失控:如果单片机由于外部干扰或其他原因失控,WDT也可以帮助系统恢复。

调试工具:在调试过程中,可以通过观察WDT的溢出来判断系统是否正常运行。

19.4.1防止死锁示例

假设系统中有一个任务可能会陷入无限循环,我们可以通过定期清零WDT来防止系统死锁。

#includexc.h

//配置WDT使用内

文档评论(0)

找工业软件教程找老陈 + 关注
实名认证
服务提供商

寻找教程;翻译教程;题库提供;教程发布;计算机技术答疑;行业分析报告提供;

1亿VIP精品文档

相关文档