原创 PIC24例程:测试看门狗

2008-8-27 14:36 4953 7 7 分类: MCU/ 嵌入式
这个程序的目的在于测试看门狗是否正常工作。PIC24的看门狗支持新的工作模式:窗口模式。清除看门狗的时间(喂狗)必须看门狗的后1/4周期进行,否则会使系统复位。

看门狗使用内部的LPRC(低功耗RC振荡器)作为时钟源,频率约31KHz,有两个可以设置的分配器。看门狗的超时时间在配置字中设置。

FWDTEN 配置位置 1 时,WDT始终是使能的。但是,FWDTEN配置位编程为 0 时,WDT 可选
择由用户软件控制。这里设置FWDTEN为0。

点击下载

//PIC24FJ64GA002的第11个程序
//看门狗测试,按下KEY后,进入死循环,看门狗超时使系统复位
//注意设置配置字,看门狗禁止,窗口模式禁止
// 后分频器 1:1024 预分频系数32
//邵子扬 2008.8.22

#include <p24Fxxxx.h>

#define LED LATBbits.LATB15
#define KEY PORTBbits.RB5

int main(void)
{
unsigned int i, j;

TRISB = 0x0FFF; //设置LED为输出RB15-RB12
LATB = 0xFFFF;

for(j = 20; j > 0; j--)
{
for(i = 30000; i > 0; i--)
Nop();
LED = !LED; //LED闪烁,提示程序开始
}

T2CON = 0;
TMR2 = 0;
PR2 = 7200 - 1; //7.3728M时钟下,产生0.5s定时器
T2CON = (1 << 15)|(1 << 5)|(1 << 4); //启动时钟,256分频

_SWDTEN = 1; //使能看门狗

while(1)
{
if(IFS0bits.T2IF)//每秒钟改变一次LED状态
{
IFS0bits.T2IF = 0;
LED = !LED;
}
if(!KEY) //按键后进入死循环
while(1);

ClrWdt();
}

return 0;
}
 

文章评论0条评论)

登录后参与讨论
我要评论
0
7
关闭 站长推荐上一条 /2 下一条