lpc1114看门狗_如何启动和喂狗

发布者:创意驿站最新更新时间:2016-12-10 来源: eefocus关键字:lpc1114  看门狗  启动和喂狗 手机看文章 扫描二维码
随时随地手机看文章

启动看门狗定时器的函数代码如下所示:

  1. void WDT_Enable(uint8_t mode)

  2. {

  3.    LPC_SYSCON->PDRUNCFG &= ~(0x1<<6);    // 看门狗振荡器时钟上电(bit6)

  4.    LPC_SYSCON->WDTOSCCTRL = (0x1<<5); // WDT_OSC_CLK=300KHz

  5.    LPC_SYSCON->WDTCLKSEL = 0x2;        // 选择看门狗振荡器时钟

  6.    LPC_SYSCON->WDTCLKUEN = 0x01;      // 更新时钟源

  7.    LPC_SYSCON->WDTCLKUEN = 0x00;      // 先写0,再写1达到更新目的

  8.    LPC_SYSCON->WDTCLKUEN = 0x01;

  9.    while ( !(LPC_SYSCON->WDTCLKUEN & 0x01) );  // 等待更新成功

  10.    LPC_SYSCON->WDTCLKDIV = 3;   // 设置看门狗分频值为3,所以现在的看门狗时钟为100K

  11.    LPC_SYSCON->SYSAHBCLKCTRL |= (1<<15);// 允许WDT时钟

  12.    LPC_WDT->TC = 25000;    // 给看门狗定时器赋值,定时时间大约1秒(wdt_clk=100KHz时)

  13.    if(mode==1) LPC_WDT->MOD |= 0x03;         // 写值0x03:不喂狗产生复位

  14.    else if(mode==0) LPC_WDT->MOD |= 0x01; //  写值0x01:不喂狗发生中断

  15.    LPC_WDT->FEED = 0xAA;        // 喂看门狗,开启

  16.    LPC_WDT->FEED = 0x55;

  17. }

WDT_Enable()函数用来启动看门狗定时器。上面的代码使用看门狗振荡器作为时钟源,定时器的时钟被配置为100KHz,初值定位25000,所以最迟喂狗的时间为(25000÷100000)×4=1秒。

第3行,PDRUNCFG寄存器bit6写0,看门狗振荡器上电。

第4行,配置WDTOSCCTRL,使得WDT_OSC_CLK为300KHz。(DIVSEL=0,FREQSEL = 1,WDT_OSC_CLK=600÷2=300KHz)

第5行,选择看门狗定时器的时钟源为看门狗振荡器。

WDTCLKSEL:看门狗时钟源选择寄存器

符号描述复位值
1:0SEL
看门狗时钟源0x00
0x0IRC振荡器
0x1主时钟
0x2看门狗振荡器
0x3保留
31:2保留0x00

第6~9行,更新看门狗定时器时钟源

第10行,给WDTCLKDIV寄存器写分频值3,把300KHz变为100KHz提供给看门狗定时器。

WDTCLKDIV:看门狗定时器分频寄存器

符号描述复位值
7:0DIV看门狗时钟分频值


0: 关闭看门狗时钟

1: 分频值1

255: 分频值255.

0x00
31:8保留0x00

第11行,给SYSAHBCLKCTRL寄存器bit15写1,开启看门狗定时器的时钟。(关于SYSAHBCLKCTRL寄存器说明,请看第二章)

第12行,给TC赋值,即给看门狗定时器赋初值。

WDTC:看门狗定时器初值寄存器

符号描述复位值
23:0Count看门狗定时器溢出间隔0x00 00FF
31:24保留位,不能给这些位写1不定

第13 14行,配置WDMOD寄存器,选择不喂狗产生复位还是产生中断,并开启看门狗定时器。

WDMOD:看门狗模式寄存器

符号描述复位值
0WDEN
看门狗允许位。此位置1,也会锁定看门狗时钟源。0
0看门狗定时器停止
1看门狗定时器运行
1WDRESET
看门狗复位允许位。0
0看门狗定时器溢出不会使芯片复位
1看门狗定时器溢出将使得芯片复位
2WDTOF
看门狗定时器溢出标志位,软件清00
3WDINT
看门狗定时器的值超过WDWARNINT后的中断标志位,软件清00
4WDPROTECT
看门狗定时器更新模式0
0WDTC的值可以在任何时候改变
1WDTC的值只有在小于WDWARNINT和WDWINDOW的值时,才可以改变。这个位在WDRESET =1的时候使用。
31:5保留位。禁止给这些位写1

第15 16行,先给FEED赋0xAA,再赋0x55,第一次喂狗开启看门狗。

WDFEED:看门狗喂狗寄存器

符号描述复位值
7:0Feed0xAA后面跟一个0x55来喂狗
31:8保留

注意:只给MOD寄存器bit0位WDEN写1并不能有效开启看门狗。WDEN置1后,再喂一次狗才能有效开启看门狗。

 

// 喂狗

  1. void WDTFeed(void)

  2. {

  3.    LPC_WDT->FEED = 0xAA;

  4.    LPC_WDT->FEED = 0x55;

  5. }

写给FEED写0xAA,再给FEED写0x55,即喂狗序列。如果写了0xAA后,没有立即给FEED寄存器写0x55,而是去配置其他的看门狗寄存器,将会立即引起单片机复位或进入看门狗中断。


关键字:lpc1114  看门狗  启动和喂狗 引用地址:lpc1114看门狗_如何启动和喂狗

上一篇:lpc1114看门狗_复位
下一篇:lpc1114通用定时器-PWM

推荐阅读最新更新时间:2024-03-16 15:24

AT89S51看门狗功能的使用方法
  在程序初始化中向看门狗寄存器(WDTRST地址是0A6H)中先写入01EH,再写入0E1H。即可激 活看门狗。     ORG 0000H     LJMP begin Begin:     MOV 0A6H,#01EH ;先送1E     MOV 0A6H,#0E1H ;后送E1     ;在程序初始化中激活看门狗。           For:          MOV 0A6H,#01EH ;先送1E     MOV 0A6H,#0E1H ;后送E1     ;喂狗指令          LJMP For 在C语言中要增加一个声明语句。 在AT89X51.h声明文件中增加一行 sfr WDTRST = 0xA6
[单片机]
基于LPC1114单片机与ATT7053芯片的智能电表设计
ATT7053AU是一颗带 SPI 的单相多功能计量芯片(EMU) 。 芯片的工作范围是 3.0 ~ 3.6V。使用晶振为 5.5296MHz。 1.att7053电路图 2.att7053 PCB 图 3.做好的成品板 4.LPC1114单片机与ATT7053采用SPI通信方式,下面采用软件模拟SPI时序 5.SPI读程序 uint32_tSPI_Read(uint8_taddress){int8_ti;uint32_ttemp_data;temp_data=0;SCK_L;Delay(1);CS_H;Delay(2);CS_L;Delay(5);SCK_H;Delay(1);MOSI_L;Delay(1);SC
[单片机]
基于<font color='red'>LPC1114</font>单片机与ATT7053芯片的智能电表设计
STM32F103看门狗功能实现
  STM32F10xxx内置两个看门狗,提供了更高的安全性、时间的精确性和使用的灵活性。两个看门狗设备( 独立看门狗 和 窗口看门狗 )可用来检测和解决由软件错误引起的故障;当计数器达到给定的超时值时,触发一个中断(仅适用于窗口型看门狗)或产生系统复位。   独立看门狗(IWDG)由专用的低速时钟(LSI)驱动,即使主时钟发生故障它也仍然有效。窗口看门狗由从APB1时钟分频后得到的时钟驱动,通过可配置的时间窗口来检测应用程序非正常的过迟或过早的操作。   IWDG最适合应用于那些需要看门狗作为一个在主程序之外,能够完全独立工作,并且对时间精度要求较低的场合。WWDG最适合那些要求看门狗在精确计时窗口起作用的应用程序。
[单片机]
AVR的看门狗操作
编译:iccavr6.31 仿真:proteus6.9+sp4 晶振:片内1MHz 接线:PB0--发光二极管,0--亮,1--灭。PA0--按键 功能:发光二极管状态闪烁,表示正常工作,若按键按住不放(即长时间不喂狗),程序将产生复位。 #include iom16v.h #include macros.h /*延时函数*/ void delay_ms(unsigned char i) { unsigned char a, b; for (a = 1; a i; a++) { for (b = 1; b; b++) { ; } } } void main(void) { DDRA = 0x00;
[单片机]
【STM32】HAL库 STM32CubeMX教程五----看门狗
前言: 今天我们来学习看门狗的配置与函数,看门狗可以有效解决程序的跑飞,在使用过程中比较常见,是防止芯片故障的有效外设,我们一起来学习下HAL库 STM32CubeMX的独立看门狗,窗口看门狗的使用。本系列教程将HAL库与STM32CubeMX结合在一起讲解,使您可以更快速的学会各个模块的使用 所用工具: 1、芯片: STM32F407ZET6 2、STM32CubeMx软件 3、IDE: MDK-Keil软件 4、STM32F1xx/STM32F4xxHAL库 知识概括: 通过本篇博客您将学到: STM32CubeMX创建看门狗例程 独立看门狗,靠窗看门狗 工作原理 看门狗 在由单片机
[单片机]
【STM32】HAL库 STM32CubeMX教程五----<font color='red'>看门狗</font>
窗口看门狗实验——WWDG
概述: 什么是窗口看门狗? 之所以称为窗口就是因为其喂狗时间是一个有上下限的范围内(窗口),你可以通过设定相关寄存器,设定其上限时间(下限固定)。喂狗的时间不能过早也不能过晚。 而独立看门狗限制喂狗时间在0-x内,x由相关寄存器决定。喂狗的时间不能过晚。 为什么要窗口看门狗? 对于一般的看门狗,程序可以在它产生复位前的任意时刻刷新看门狗,但这有一个隐患,有可能程序跑乱了又跑回到正常的地方,或跑乱的程序正好执行了刷新看门狗操作,这样的情况下一般的看门狗就检测不出来了; 如果使用窗口看门狗,程序员可以根据程序正常执行的时间设置刷新看门狗的一个时间窗口,保证不会提前刷新看门狗也不会滞后刷新看门狗,这样可以检测出程序没有按
[单片机]
窗口<font color='red'>看门狗</font>实验——WWDG
ATmega168 看门狗复位
看门狗定时器溢出时将产生持续时间为1个CK周期的复位脉冲。在脉冲的下降沿,延时定时器开始对tTOUT 记数。请参见P44 以了解看门狗定时器的具体操作过程。
[单片机]
ATmega168 <font color='red'>看门狗</font>复位
看门狗的单监控器监视0.5V 至12V 的宽电压范围
2007 年 10 月 1 日 - 北京 - 凌力尔特公司( Linear Technology Corporation )推出能监视 0.5V 至 12V 宽输入电压范围的单个电压监察器 LTC2917 。该器件能监视 27 个单独的引脚可选门限, 应用范围从电量耗尽的 1V 单 AA 电池到电压高达 12V 的工业应用。 同类解决方案需要为每个不同的电压门限提供单独的监控器。 LTC2917 V CC 电源还包括 6.2V 并联稳压器,用于监视高于 12V 的输入电压。 27 个可选门限规定总体准确度为
[新品]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved