打印
[ZLG-MCU]

LPC952的看门狗怎么不运行啊!各位前辈帮我看看啊!

[复制链接]
967|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
eaglewxy|  楼主 | 2008-4-21 15:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

各位前辈,帮我看看LPC952的看门狗怎么不运行啊?各位前辈好!

我的LPC952的看门狗怎么都不运行啊!设置也很简单啊,怎么就不运行呢?有相关经验的朋友能给点建议吗?谢谢!

这个程序应该因为看门狗复位,灯熄灭后应该要再次点亮!

灯亮---熄灭---亮(因为看门狗溢出复位),但是灯熄灭后不亮了啊!

/**************************************************************************
* Copyright(C)2007
* All rights reserved.

* 文 件 名:

* 文件描述:


* 创 建 人:
* 当前版本: 1.0
* 完成日期:
* 修改记录:
*
* 说 明:全局变量(Global Variable)后缀:_G
***************************************************************************/

#include < reg952.h >

/*宏定义*/
#define uchar unsigned char
#define uint unsigned int
#define uintl unsigned long


#define BRGR1_DATA 0x04 /*9600 baud @ 11.0592MHz*/
#define BRGR0_DATA 0x70

#define ADIN_Channel 0x60 /*T:AD05 V:AD06*/

sbit pow_en = P1^7; /*电源控制*/

/*=========================================================================
* 函 数 名:clrwdt()
* 功能描述:
* 喂狗子程序
* 入口参数:
* 无 
* 出口参数:
* 无
* 函数说明:
* 无
=========================================================================*/
//void clrwdt ()
//{
// EA=0; /*关中断*/
// WFEED1=0xA5; /*执行清零第一部分*/
// WFEED2=0x5A; /*执行清零第二部分*/
// EA=1; /*开中断*/
//}

/*=========================================================================
* 名 称:init_wdt()
* 功能描述:
* 看门狗初始化程序 
* 入口参数:
* 无
* 出口参数: 
* 无
* 函数说明:
* CPU配置(UCFG1)WDTE=1,WDSE=0
* WDCON上电复位值为111??1?1B (默认选择看门狗振荡器) 
=========================================================================*/
void init_wdt ()

WDL=0xFF; /*设置8位倒计数器初值,复位值为FF*/

EA=0;
WDCON=0xC5; /*启动WDT 1.31S*/
WFEED1=0XA5; /*清零第一部分*/
WFEED2=0X5A; /*清零第二部分*/
EA=1;
}

/*=========================================================================
* 名 称:Delayms()
* 功能描述:
* N*0.5ms级延时
* 入口参数:
* N 延时参数
* 出口参数:
* 无
*
* 函数说明:N值越大,延时越久
=========================================================================*/
void Delayms ( uint N )
{
uint j;
while ( N>0 )
{
for ( j=0; j<=200; j++) ;
N-- ;
}
}

/*=========================================================================
* 名 称:Init_CPU()
* 功能描述:
* 初始化CPU各部件
* 入口参数:
* 无
* 出口参数:
* 无

* 函数说明: 
=========================================================================*/
void Init_CPU ( )
{
/*I/O口初始化*/
P0M1=0x87; 
P0M2=0x00;

P1M1=0x3c;
P1M2=0x00;

P2M1=0x02;
P2M2=0x00;

P4M1=0xf3;
P4M2=0x00;

P5M1=0x00;
P5M2=0x00;

/*A/D转换模式*/
AD0INS=ADIN_Channel; /*使能待选通道*/
AD0MODA|=0x20; /*双通道、连续转换模式*/
AD0MODB =0x00; /*ADC时钟为1分频CCLK 8次产生中断*/

/*UART0 初始化*/
//PCON &= 0x3f; /**/
S0CON = 0xf0; /*MODE 3、使能接受、使能多机通讯*/

BRGCON_0 = 0x00; /*载入波特率常数*/
BRGR1_0 = BRGR1_DATA; /*9600 baud @ 11.0592MHz*/
BRGR0_0 = BRGR0_DATA; 
BRGCON_0 = 0x03; /*选择独立的波特率发生器、并使能*/

S0STAT = 0x20; /*使用独立的Rx和Tx中断*/

/*UART1 初始化*/
S1CON = 0x50; /*MODE 1 使能接收*/

BRGCON_1 = 0x00; /*载入波特率常数*/
BRG1_1 = BRGR1_DATA; /*9600 baud @ 11.0592MHz*/
BRG0_1 = BRGR0_DATA; 
BRGCON_1 = 0x03; /*选择独立的波特率发生器、并使能*/

S1STAT = 0x20; /*使用独立的Rx和Tx中断*/

IEN2=0x04; /*使能UART1接收中断*/

/*T0 T1 初始化*/
TMOD=0x15; /*定时器0:计数 定时器1:定时; 模式1:16位; TRn控制*/
TCON=0X01; /*外中断0下降沿触发 外中断1低电平触发*/

EA=1;
}

/*=========================================================================
* 名 称:main()
* 功能描述:

* 入口参数:
* 无
* 出口参数:
* 无
*
* 函数说明:无
===========================================================================*/
void main ( )
{
Delayms( 10 );

Init_CPU();

init_wdt(); 

pow_en=0; /*测量部分电源使能*/
Delayms ( 1000 );

while( 1 )
{
// clrwdt();
Delayms ( 500 );
pow_en=1;
Delayms ( 500 ); 
}
}
 

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

3

帖子

0

粉丝