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

controlSUIT中 28035 CLA的sqrt例子

controlSUIT中 28035 CLA的sqrt例子

有//Task 1 :y = sqrt(x)

__interrupt void Cla1Task1 ( void )
{
    fResult = __sqrt(fVal);
}

这个 __sqrt()函数在哪里有说明,

是不是要包含IQmath才可以使用。

 

问题2.

我用Cla1ForceTask8andWait(); 触发task8

在task8中初始化一个变量 ClaData.fCoef.B1=0.046790559;

用Expressions 查看ClaData.fCoef.B1的值。发现ClaData.fCoef.B1没有初始成功(至少在Expressions 中没有显示ClaData.fCoef.B1等于0.046790559)。

如果我用PWM 周期性的触发 task6。在Task6中赋值ClaData.fCoef.B1=0.046790559; 。

则在Expressions 中显示ClaData.fCoef.B1等于0.046790559)。

 

 

 

Martin Yu:

 问题1:__sqrt()应该是C/C++编译器支持的指令,可以去编译器手册上找下;

问题2:不能再task中对变量进行初始化,需要在任务启动前进行,如:

fVal = 2; Cla1ForceTask1andWait();

可以用RAM去传递变量的值;

controlSUIT中 28035 CLA的sqrt例子

有//Task 1 :y = sqrt(x)

__interrupt void Cla1Task1 ( void )
{
    fResult = __sqrt(fVal);
}

这个 __sqrt()函数在哪里有说明,

是不是要包含IQmath才可以使用。

 

问题2.

我用Cla1ForceTask8andWait(); 触发task8

在task8中初始化一个变量 ClaData.fCoef.B1=0.046790559;

用Expressions 查看ClaData.fCoef.B1的值。发现ClaData.fCoef.B1没有初始成功(至少在Expressions 中没有显示ClaData.fCoef.B1等于0.046790559)。

如果我用PWM 周期性的触发 task6。在Task6中赋值ClaData.fCoef.B1=0.046790559; 。

则在Expressions 中显示ClaData.fCoef.B1等于0.046790559)。

 

 

 

wellsking:

回复 Martin Yu:

1、我定义一个变量 fval

#pragma DATA_SECTION(fval,"Cla1DataRam0");

float fval;

2、CLA初始化

    Cla1Regs.MVECT6 = ((Uint16)Cla1Task6 – (Uint16)&Cla1Prog_Start);    Cla1Regs.MVECT7 = ((Uint16)Cla1Task7 – (Uint16)&Cla1Prog_Start);    Cla1Regs.MVECT8 = ((Uint16)Cla1Task8 – (Uint16)&Cla1Prog_Start);

 Cla1Regs.MPISRCSEL1.bit.PERINT6SEL = CLA_INT6_ADCINT6; Cla1Regs.MPISRCSEL1.bit.PERINT7SEL = CLA_INT7_NONE; Cla1Regs.MPISRCSEL1.bit.PERINT8SEL = CLA_INT8_NONE;

 Cla1Regs.MMEMCFG.bit.PROGE = 1; Cla1Regs.MMEMCFG.bit.RAM0E = 1; Cla1Regs.MMEMCFG.bit.RAM1E = 1;

 Cla1ForceTask8(); //Cla1ForceTask8andWait(); 用Cla1ForceTask8andWait();触发task8

3、在task8中初始化fval

__interrupt void Cla1Task8 ( void ){    fval=0.00;}

在task6中使用fval

__interrupt void Cla1Task6 ( void ){    fval=AdcResult.ADCRESULT0;}

这样的用法,有什么问题吗?

Cla1Task6 中对fcal赋值,计算是没问题的,我验证过。

但是,为什么Task8的赋值不对,并且,我在Task8里放 __mdebugstop();

也不能产生断点!

赞(0)
未经允许不得转载:TI中文支持网 » controlSUIT中 28035 CLA的sqrt例子
分享到: 更多 (0)