分享 收藏 返回

DSP论坛

[问答] DSP方式控制寄存器ACTRx使用问题

2012-8-22 21:43

最近在编程时发现一个问题,以下面这个小程序为例,则在x=6000的情况下执行该程序,只有后面的EvaRegs.ACTRA.bit.CMP2ACT=2;EvbRegs.ACTRB.bit.CMP8ACT=0这两句会被执行,而上面两个bit位将保持初始化时的值不变,调换两者顺序后则变为只有  EvaRegs.ACTRA.bit.CMP1ACT=2;EvbRegs.ACTRB.bit.CMP7ACT=0被执行,即始终只有最后的赋值位被赋值,前面再多都不变。

注意:该程序在执行时由于变量i的限制,使得该程序仅能执行一次。
本人尝试从ACTRx带影子寄存器入手考虑,但对影子寄存器了解很少,恳请大侠出面相助,感激不尽!


if (i==0)
{
   if (x>2000)
  {
  EvaRegs.ACTRA.bit.CMP1ACT=2;
  EvbRegs.ACTRB.bit.CMP7ACT=0;
  }

  if(x>5000)
  {
  EvaRegs.ACTRA.bit.CMP2ACT=2;
  EvbRegs.ACTRB.bit.CMP8ACT=0;
  }

i++;
}

更多回帖

相关课程