浮名此生分享 http://blog.sciencenet.cn/u/hailangww 工学博士

博文

看门狗中断程序

已有 1381 次阅读 2022-9-30 11:55 |系统分类:科研笔记

// watchdog.cpp : Defines the entry point for the console application.

//----------------------------------------------------------------------

//              #################看门狗中断程序##############

//----------------------------------------------------------------------



#include "DSP281x_Device.h"

#include "DSP281x_Examples.h"

interrupt void wakeint_isr(void);

void KickDog(woid);

#define BIT1 0x0002

//全局变量-------------------------------------------------------------

Uint32 WakeCount;

Uint32 LoopCount;




void main(woid)

{

InitSysCtrl();                                   //初始化系统控制寄存器、PLL、看门狗和时钟


DINT;                                            //关闭全局中断响应

InitPieCtrl();


IER = 0x0000;                                    //关闭中断开关

IFR = 0x0000;                                    //清除中断标志位


InitPieVectTable();                              //初始化中断向量表


EALLOW;                                          //保护中断向量

PieVectTable.WAKEINT = &wakeint_isr;             //看门狗中断向量指向中断服务子程序

EDIS;                                            //操作完成


WakeCount =0;

LoopCount = 0;


EALLOW;

SysCtrlRegs.SCSR = BIT1;                         //选择看门狗中断,禁止看门狗复位

EDIS;


PieCtrlRegs.PIECRTL.bit.ENPIE = 1;               //允许PIE1组中中断

PieCtrlRegs.PIEIER1.bit.INTx8 = 1;               //打开第一组的watchdog中断

IER |= M_INT1;                                   //允许CPU响应1组中断

EINT;                                            //允许全局中断


KickDog();                                       //定时清零(喂狗)


EALLOW;                                

SysCtrlRegs.WDCR = 0x0028;                       //使能看门狗,WDCLK=OSCCLK/512/1

EDIS;


for(;;)

{

LoopCount++;

}


interrupt void wakeint_isr(void)

{

WakeCount++;


PieCtrlRegs.PIEACK.all =PIEACK_GROUP1;          //写1继续响应中断


}


voidKick Dog(void)

{

EALLOW;

SysCtrlRegs.WDKEY = 0x0055;                    //看门狗计数器清零

SysCtrlRegs.WDKEY = 0x00AA;

EDIS;

}



}




https://blog.sciencenet.cn/blog-54347-1357452.html

上一篇:[转载]中断服务程序
下一篇:VC++运行遇到的问题,
收藏 IP: 58.34.184.*| 热度|

0

该博文允许注册用户评论 请点击登录 评论 (0 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-20 08:30

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部