在尝试设置 DCBEVT1时会发生真正的怪异事件、这似乎会忘记 EALLOW、但实际上不会。 代码为:
uint16 st1 = GetST1 (); uint16 WriteIsAllated = IsRegWriteAllated(); Debug_Assert (WriteIsAllhed); BridgePwmRegsPtr [相位]->TZEINT.BIT.DCBEVT1 = 0; DEBUG_ASSERT (BridgePwmRegsPtr [相位]->TZEINT.bit.DCBEVT1 = 0);
由于某种原因、DCBEVT1偶尔未能更改为1。 使用另一个代码、我将检查 ST1中的 EALLOW 位是否被置位、即写入保护被禁用(这是一致的)。 当 DEBUG_ASSERT 中断时、我还会检查调试器中的 EALLOW 位。 我是一个损失、有人知道我在这里做错了什么、或者什么 H/W 或编译器错误会导致这种情况吗?