请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:TMS320F28377S Thread 中讨论的其他器件:C2000WARE
工具与软件:
你好
我有如下所示的代码、尽管我启用了看门狗、但我可以在寄存器屏幕中看到 WDDIS 寄存器1、因此看门狗无法工作、这可能是什么原因、我的寄存器值看起来是正确的、我从 sysctl.h 库中获得了所有这些值
SysCtl_enableWatchdog(void) { EALLOW; // // Clear the disable bit. // HWREGH(WD_BASE + SYSCTL_O_WDCR) = (HWREGH(WD_BASE + SYSCTL_O_WDCR) & ~SYSCTL_WDCR_WDDIS) | SYSCTL_WD_CHKBITS; EDIS; }
我获取了上述寄存器设置
这是我的代码。
void main(void) { EALLOW; PieVectTable.TIMER0_INT = &cpu_timer0_isr; PieVectTable.TIMER1_INT = &cpu_timer1_isr; PieVectTable.TIMER2_INT = &cpu_timer2_isr; EDIS; InitCpuTimers(); // Burada config ayarları yapabilirdik ConfigCpuTimer(&CpuTimer0, 200, 1000); //1ms ConfigCpuTimer(&CpuTimer1, 200, 100); //100 us ConfigCpuTimer(&CpuTimer2, 200, 40); //40us CpuTimer0Regs.TCR.all = 0x4001; CpuTimer1Regs.TCR.all = 0x4001; CpuTimer2Regs.TCR.all = 0x4001; CpuTimer2Regs.TCR.bit.TSS = 1; init_watchdog(); reset_watchdog(); Uint32 timer1_test_counter = 0; interrupt void cpu_timer1_isr(void) { if (watchdog_flag == 1) { reset_watchdog(); } else { } DELAY_US(1); }