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.

[参考译文] TMS320F28377S:我可以使用任务来初始化 CLA 全局变量吗?

Guru**** 2547860 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/627535/tms320f28377s-can-i-initialize-cla-global-variables-using-a-task

器件型号:TMS320F28377S
主题中讨论的其他器件:C2000WARE

大家好

我尝试使用低优先级任务(task8)初始化.cla 文件上的全局变量、然后在 task1上持续切换此变量

我的.cla 文件如下所示:

//包含的文件
#include "cla_sqrt_shared.h"
#include "F28x_Project.h"

//全局
int 状态;

__interrupt void Cla1Task1 (void)
{
_mdebugstop();
if (status =0)
{
GpioDataRegs.GPADAT.bit.GPIO13=1;
状态= 1;
}

if (status ==1)
{
GpioDataRegs.GPADAT.bit.GPIO13=0;
状态= 0;
}
}

__interrupt void Cla1Task8 (void)
{
_mdebugstop();
状态= 1;
} 

但是在调试时(CCS v7)、我注意到只有当我强制执行 Cla1Task8时、"status"才会改变、但当我调用 Cla1Task8时、它不会改变。

在 main.c 文件中、我只调用一次 Cla1Task8、就在我进入一个循环之前、在这个循环中、Task1在一个短暂的延迟后被重复触发。

for (;;)
{
Cla1ForceTask1andWait();
//
//延迟一位。
//
DELAY_US (1000*500);
} 

有可能吗? 我需要做些什么才能使其正常工作?  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    这很有可能。 如果需要先运行任务8、则需要确保在更高优先级的任务1之前触发任务8。 您似乎需要在任务1之前运行任务8。

    请参阅 C2000Ware 中的 CLA 示例。

    e2e.ti.com/.../619425


    SAL