LM3S9B96 的看门狗定时器

发布者:平和心态最新更新时间:2016-07-30 来源: eefocus关键字:LM3S9B96  看门狗定时器 手机看文章 扫描二维码
随时随地手机看文章
看门狗定时器是为了防止程序跑飞而设计的,当到达设置的定时时间,程序还没有喂狗(重新设置定时初值),程序就会被强制复位。
 
ls3s9b96的看门狗定时器,不用在程序中手动喂狗,在API函数中已经完成了这项工作。
 
下面是watchdog配置的例子

#include "inc/lm3s9b96.h"
#include "inc/hw_memmap.h"
#include "inc/hw_types.h"
#include "inc/hw_ints.h"
#include "driverlib/interrupt.h"
#include "driverlib/gpio.h"
#include "driverlib/watchdog.h"
#include "driverlib/timer.h"
#include "driverlib/sysctl.h"


/* 用于调试 PF1 <-> LED -----------------------------------------------------*/
#define LED_PERIPH SYSCTL_PERIPH_GPIOF
#define LED_PORT GPIO_PORTF_BASE
#define LED_PIN GPIO_PIN_1
#define LED_OFF 1 << 1
#define LED_ON ~(1 << 1) // 低电平点亮LED


//*****************************************************************************
//
// 延时函数
//
//*****************************************************************************
void Delay(volatile signed long nCount)
{
for(; nCount != 0; nCount--);
}

//*****************************************************************************
//
// LED初始化函数,用于调试timer, watchdog等
//
//*****************************************************************************
void LED_Init(void)
{
// 使能LED所在的GPIO端口
SysCtlPeripheralEnable(LED_PERIPH);

// 设置LED所在管脚为输出
GPIOPinTypeGPIOOutput(LED_PORT, LED_PIN);

// 熄灭LED(默认LED是点亮的,低电平点亮LED)
GPIOPinWrite(LED_PORT, LED_PIN, LED_OFF);
}

//*****************************************************************************
//
// 看门狗初始化函数
//
//*****************************************************************************
void Watchdog_Init(void)
{
// 使能看门狗
SysCtlPeripheralEnable(SYSCTL_PERIPH_WDOG0);

// 使能看门狗中断
IntEnable(INT_WATCHDOG);

// 设置看门狗定时器重载值(8000000个系统时钟周期)
WatchdogReloadSet(WATCHDOG0_BASE, SysCtlClockGet() / 2);

WATCHDOG0_TEST_R = 0x100;

// 使能看门狗复位输出
WatchdogResetEnable(WATCHDOG0_BASE);

// 看门狗中断使能
WatchdogEnable(WATCHDOG0_BASE);
}

//*****************************************************************************
//
// 主函数
//
//*****************************************************************************
int main(void)
{
// Set the clocking to run directly from the crystal.
SysCtlClockSet(SYSCTL_SYSDIV_1 | SYSCTL_USE_OSC | SYSCTL_OSC_MAIN | SYSCTL_XTAL_16MHZ);

LED_Init();
Watchdog_Init();
IntMasterEnable(); // 开总中断

while (1)
{
}
}


//*****************************************************************************
//
// This feeds the dog and winks the LED
//
//*****************************************************************************
void WatchdogIntHandler(void)
{
// 清除看门狗定时中断
WatchdogIntClear(WATCHDOG0_BASE);

// 置反LED灯状态
GPIOPinWrite(LED_PORT, LED_PIN, (GPIOPinRead(LED_PORT, LED_PIN) ^ LED_PIN));
}

按照前面讲的中断映射表的配置,将startup_ewarm.c文件中添加两处代码。编译、运行即可。

关键字:LM3S9B96  看门狗定时器 引用地址:LM3S9B96 的看门狗定时器

上一篇:LM3S9B96 的以太网配置
下一篇:LM3S9B96 的UART以中断方式收发数据

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

看门狗定时器的c语言编程
//***************FileName:LED.C***************// //**************ICCAVR V6.30编译**************// #include io8535v.h //头文件,AT90S8535单片机的寄存器定义 #define uchar unsigned char //数据类型说明 #define uint unsigned int //数据类型说明 void DelayMs(uint i) //Ms级延时函数,参数i:延时时间 {uint j; for(;i!=0;i--) {for(j=2000;j!=0;j--) {;}} }
[单片机]
MSP430学习点滴—看门狗定时器
简介:看门狗有三种工作模式:停止模式,计时器模式,看门狗模式。控制寄存器WDTCTL由两部分组成,高8位用作口令,低8位实现对WDT的控制操作。要实现对WDT的操作控制,必须先写入高字节看门狗口令。 控制寄存器WDTCTL由两部分组成,高8位用作口令,低8位实现对WDT的控制操作。要实现对WDT的操作控制,必须先写入高字节看门狗口令。口令为5AH,头文件里一般将WDTPW宏定义为5AH.WDTCTL寄存器各位定义如下: 15~8 7 6 5 4 3 2 1 0 口令 HOLD NMIES NMI TMSEL CNTCL SSEL IS1 IS0 IS0 IS1 选择看门狗定时器的定时输出,其中T是WDTCNT的输入
[单片机]
MSP430看门狗定时器的寄存器定义
/************************************************************ * 看门狗定时器的寄存器定义 ************************************************************/ #define WDTCTL_ 0x0120 sfrw WDTCTL = WDTCTL_; #define WDTIS0 0x0001 /*选择WDTCNT的四个输出端之一*/ #define WDTIS1 0x0002 /*选择WDTCNT的四个输出端之一*/ #define WD
[单片机]
C8051F与80C51系列单片机的不同初始化
1 引言 近30年来,世界各主要电子元器件生产厂商纷纷推出自己各具特色的单片机产品。而在百花齐放的单片机家族中,80C5l系列一直扮演着重要的角色。该单片机在教学、科研等领域已经成为入门单片机并成为单片机应用的首选,该产品以其易读性好、扩展能力强而著称,从而成为广大从事单片机开发者最熟悉、最具代表的机型。但人们往往在熟悉80C51单片机之后又选择别的系列单片机开发产品,这是因为80C51具有运算速度慢、功耗大、内部资源少等不足,所以限制了其使用范围。Cygnal公司推出的C805lF系列单片机既弥补了80C51系列的不足,又与MCS—5l指令集兼容。C805lFxxx系列单片机是完全集成的混合信号系统级芯片,具有与8051指令集
[单片机]
LM3S9B96 读写寄存器的两种方式
可以通过两种方式读写寄存器 1. 在hw_types.h文件中 //***************************************************************************** // // Macros for hardware access, both direct and via the bit-band region. // //***************************************************************************** #define HWREG(x) (*((volatile unsigned long *
[单片机]
ATmega64 看门狗定时器
看门狗定时器 看门狗定时器由独立的1 Mhz 片内振荡器驱动。这是VCC = 5V 时的典型值。请参见特性 数据以了解其他VCC 电平下的典型值。通过设置看门狗定时器的预分频器可以调节看门狗 复位的时间间隔,如 P54Table 22 所示。看门狗复位指令WDR 用来复位看门狗定时器。 此外,禁止看门狗定时器或发生复位时定时器也被复位。复位时间有8 个选项。如果没有 及时复位定时器,一旦时间超过复位周期, ATmega64 就复位,并执行复位向量指向的 程序。具体的看门狗复位时序见P50。 为了防止无意之间禁止看门狗定时器或改变了复位时间,根据熔丝位M103C 和 WDTON 芯片提供了3 个不同的保护级别,如Table 21
[单片机]
ATmega64 <font color='red'>看门狗</font><font color='red'>定时器</font>
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

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

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

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