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.

[参考译文] TMS320F28034:PIE 矢量表重新映射问题

Guru**** 2549940 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/760811/tms320f28034-pie-vector-table-re-map-issue

器件型号:TMS320F28034

您好!  

客户使用 F28034进行电机控制。 现在、他们面临一个有关 PIE 矢量表重映射的问题。

在系统加电/断电测试期间,很少有几次,在 fun2()中,test1可以是10而不是20,这是很混乱的。 问题出在哪呢?

F28034外部复位被设定为3.14V。 加电/断电频率为1s、2s、3s、阶跃为10s、再到1s、2s…… 在断电期间、5s 后、RESET 引脚被驱动为低电平;6s 后、F28034完全断电。 3.3V 变为0V。   

代码如下所示:

MAIN ()

system_peripheral_init();

test1=10;   // test1默认值10

EALLOW;

PieVectTable.ADCINT1=&fun1 ();   //映射到 fun1 ()

EDIS;

EINT;

for (;;)

{  

  如果(...)     //条件只会为真一次;  

  {

    test1=20;    // test1设置为另一个值20

    EALLOW;

     pieVectTable.ADCINT1=&fun2 ();    //重新映射到 func2 (),它只执行一次。

    EDIS;

  }//if (...)

  (笑声)

  (笑声)

}//for (;;)

}//main()

fun1 () {...}

fun2()

printf (test1);

非常感谢。

BR、Jordan

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    您能否检查测试变量是否声明为 volatile?

    谢谢

    Vasudha