锐单电子商城 , 一站式电子元器件采购平台!
  • 电话:400-990-0325

TMS320F2812外设例程系列之Watchdog

时间:2024-04-16 17:37:10

//##################################################################### //文件: Example_281xWatchdog.c //说明: D 281x看门狗中断测试程序 //##################################################################### #include "DSP281x_ .h" #include "DSP281x_Examples.h" interrupt void wakeint_isr(void); //中断服务程序wakeint_isr的声明 Uint32 WakeCount; Uint32 LoopCount; //主程序 void main(void) { //Step 1. 初始化系统控制,该函数在DSP281x_SysCtrl.c 文件中 InitSysCtrl(); //初始化PLL、看门狗,使能外设时钟 //Step 2.初始化GPIO //该函数在DSP281x_Gpio.c文件中,显示如何设置GPIO到其默认状态 //InitGpio(); //本例未使用,跳过 //Step 3.禁止所有中断,初始化PIE中断向量表 DI ; //关全局中断 //初始化PIE控制寄存器到它们的默认状态,即禁止所有的PIE中断,清除所有的PIE中断 //标志,这个函数在DSP281x_PieCtrl.c文件中 InitPieCtrl(); IER = 0x0000; //禁止 中断 IFR = 0x0000; //清除CPU中断标志 //初始化PIE中断向量表,使中断向量指向中断服务程序(ISR)。为了调试方便,即使本例 //不使用的中断也初始化。ISR在DSP281x_DefaultIsr.c文件中 InitPieVectTable(); //本例中使用到的中断程序入口地址重载到相应中断向量 EALLOW; //允许访问受保护寄存器 PieVectTable.WAKEINT = &wakeint_isr; EDIS; //禁止访问受保护寄存器 //Step 4.初始化器件所有的片内外设,该函数在DSP281x_InitPeripherals.c文件中 //InitPeripherals(); //本例不需要,跳过 //Step 5. 用户代码,使能中断 WakeCount = 0; //计中断次数清零 LoopCount = 0; //计通过循环的次数清零 //看门狗复位(WDR )输出信号无效且看门狗中断(WDINT)输出信号有效 EALLOW; SysCtrlRegs. R = BIT1; //清除WDOVERRIDE位 EDIS; PieCtrlRegs.PIECRTL.bit.ENPIE = 1; //使能PIE块 PieCtrlRegs.PIEIER1.bit.INTx8 = 1; //使能PIE级中断INT1.8 IER |= M_INT1; //使能CPU级中断 INT1 EINT; //使能全局中断 KickDog( ); //喂狗,清除看门狗 EALLOW; SysCtrlRegs.W R = 0x0028; //使能看门狗 EDIS; //Step 6. 空循环 for(;;) { LoopCount++; //不注释掉KickDog(喂狗)就一直在这儿循环,注释掉KickDog(喂狗)引起WAKEINT中断 //KickDog(); } } //Step 7. 加上局部中断服务程序(ISR),如果局部ISR已经使用,按照Step 5中断向量, //再分配中断向量地址 interrupt void wakeint_isr(void) { WakeCount++; PieCtrlRegs.PIEACK.all = PIEACK_GROUP1; //应答这个中断,以便再接收PIE组1的中断 }
-电子元器件采购网(www.ruidan.com)是本土元器件目录分销商,采用“小批量、现货、样品”销售模式,致力于满足客户多型号、高质量、快速交付的采购需求。 自建高效智能仓储,拥有自营库存超过50,000种,提供一站式正品现货采购、个性化解决方案、选型替代等多元化服务。
锐单商城拥有海量元器件数据手册IC替代型号,打造电子元器件IC百科大全!

相关文章