This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DSP28335中断中写数据不成功



CPU中开有2个中断用过该数据例如A,MCBSP中断和Timer0中断,MCBSP中断是每秒50K次左右,Timer0中断是1ms一次;

        MCBSP接外部AD芯片,实际应用为检测到AD值大于某个值时,变更A的值,此中断中只有写A的动作;Timer0对A的值进行检测,只有读A的动作;实际运行时总会有一定的几率出现写A不成功;而此时数据B(在数据A有写入动作时同时动作,只在MCBSP中断和主程序调用)则不会出错;这种属于什么情况?

       设备正常运行一次会出现一次写A的动作,测试中设备运行100-2000次 不等会随机出现一次异常。

程序如下:

    MCBSP中断中:    

if( AdcCH1_Buf > RunData.Data.PSetLoad )
{
     if(RunData.Data.Mode.PRunLock==0)
     {
            AxisX_Move.Axis_Data.Status.AccStatus = 2;
            RunData.Data.Mode.PRunLock = 1;
      }
}

   Timer0中断中:

    if( AxisX_Move.Axis_Data.Status.AccStatus == 0 ) 

   {

   }

   else if( AxisX_Move.Axis_Data.Status.AccStatus == 2 ) 

  {

   }

运行中AxisX_Move.Axis_Data.Status.AccStatus会出现写入不成功情况,而RunData.Data.Mode.PRunLock 则不会有问题!