TI中文支持网
TI专业的中文技术问题搜集分享网站

cla任务中 变量值为正,但是运行时为负的,为什么

程序如下;

__interrupt void Cla1Task1 ( void )
{

duty=duty+1;

if(duty==3600)
{duty=0;
}

}

Eric Ma:

你这个变量值有没有在任务8中进行初始化啊?

Eric

程序如下;

__interrupt void Cla1Task1 ( void )
{

duty=duty+1;

if(duty==3600)
{duty=0;
}

}

lin wen:

回复 Eric Ma:

你的意思是说,任务1中的变量初始化要在任务8中进行?我的这个变量是定义为 cla to cpu .如果变量类型为float,就不会出现这种情况,而类型为int ,long 等,值会为负值,而且绝对值不相等

程序如下;

__interrupt void Cla1Task1 ( void )
{

duty=duty+1;

if(duty==3600)
{duty=0;
}

}

Eric Ma:

回复 lin wen:

如果任务1中用到的全局变量,且在CLA定义的,需要在任务8中进行初始化,因为CLA不能进行默认初始化。你可以参考程序:C:\ti\controlSUITE\development_kits\HVMotorCtrl+PfcKit_v2.1\HVPM_Sensorless_CLA_F2803x

另外你要注意,CLA的int是32位的。你可以把它定义成无符号的,然后再传送给CPU。

ERIC

赞(0)
未经允许不得转载:TI中文支持网 » cla任务中 变量值为正,但是运行时为负的,为什么
分享到: 更多 (0)