DSP方式控制寄存器ACTRx使用问题
时间:10-02
整理:3721RD
点击:
最近在编程时发现一个问题,以下面这个小程序为例,则在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++;
}
注意:该程序在执行时由于变量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++;
}