请你写一套dsp28335的看门狗程序并调用程序使其正常运行
时间: 2024-03-15 20:44:19 浏览: 86
好的,下面是一套基本的DSP28335看门狗程序:
```c
#include "DSP2833x_Device.h"
#include "DSP2833x_Examples.h"
interrupt void WDOG_ISR(void);
void InitWatchdog(void)
{
EALLOW; // 使能写入保护模式
SysCtrlRegs.WDCR= 0x002F; // 禁用看门狗,设置最大时间间隔
SysCtrlRegs.WDCR= 0x0028; // 使能看门狗,设置时间间隔为2ms
EDIS; // 禁止写入保护模式
PieCtrlRegs.PIEIER1.bit.INTx7 = 1; // 使能看门狗中断
IER |= M_INT1; // 使能中断
}
interrupt void WDOG_ISR(void)
{
// 在这里编写看门狗中断服务程序
// 可以添加任何你想要的操作
// 但是记住一定要喂狗,否则会重启系统
// 喂狗的方式为写入任意值到WDCR寄存器
// 例如:SysCtrlRegs.WDCR = 0x002F;
// 这里我们仅仅清除中断标志位
PieCtrlRegs.PIEACK.all |= PIEACK_GROUP1;
}
void main(void)
{
InitSysCtrl();
InitWatchdog();
EINT; // 使能全局中断
ERTM; // 使能全局中断
while(1)
{
// 在这里添加主程序
// 例如,可以添加一些有用的任务
// 但不要忘记喂狗
SysCtrlRegs.WDCR = 0x002F;
}
}
```
这是一个基本的看门狗程序,它会在每2ms产生一个中断,你可以在中断服务程序中添加任何你想要的操作。在主程序中,你需要定期喂狗以防止系统重启。
阅读全文