基于28377的CLA数学库调用和运算中,CLAsqrt()可以准确计算出数据,单涉及到三角运算以及反三角运算却均反馈零值,不知道哪里有出错的了????
对应的头文件为:CLAmath.h
包含的库文件为:CLAmath.lib,CLAmath_fpu32.lib
在CLA协处理器中执行的代码有:
cla.CTR0 = EPwm2Regs.TBCTR;
clatocpuvalue0 = CLAsqrt(Coff0); //30 SYSCLK
cla.CTR1 = EPwm2Regs.TBCTR;
clatocpuvalue1 = CLAsin(Coff1); //69 SYSCLK
cla.CTR2 = EPwm2Regs.TBCTR;
//clatocpuvalue2 = CLAcos(Coff2); //73 SYSCLK
cla.CTR3 = EPwm2Regs.TBCTR;
clatocpuvalue3 = CLAasin(Coff3); //42 SYSCLK
cla.CTR4 = EPwm2Regs.TBCTR;
clatocpuvalue4 = CLAacos(Coff4); //49 SYSCLK
cla.CTR5 = EPwm2Regs.TBCTR;
clatocpuvalue5 = __sqrt(Coff5); //18 SYSCLK
cla.CTR6 = EPwm2Regs.TBCTR;
clatocpuvalue6 = CLAatan(Coff6);
cla.CTR7 = EPwm2Regs.TBCTR;
cla.CTR8 = EPwm2Regs.TBCTR;
cla.CTR9 = EPwm2Regs.TBCTR;
在上述运算中只有开方运算是正确的,请教高手指点了???
kafei zhang:
此处本人在设置CLA1mathTables : > RAMLS3, PAGE = 1的同时,忽略了还需要将RAMLS3的主权交给CLA,即在CLA初始化中增加一条主权移交语句:
MemCfgRegs.LSxMSEL.bit.MSEL_LS3 = 1;
以此与大家共享.
基于28377的CLA数学库调用和运算中,CLAsqrt()可以准确计算出数据,单涉及到三角运算以及反三角运算却均反馈零值,不知道哪里有出错的了????
对应的头文件为:CLAmath.h
包含的库文件为:CLAmath.lib,CLAmath_fpu32.lib
在CLA协处理器中执行的代码有:
cla.CTR0 = EPwm2Regs.TBCTR;
clatocpuvalue0 = CLAsqrt(Coff0); //30 SYSCLK
cla.CTR1 = EPwm2Regs.TBCTR;
clatocpuvalue1 = CLAsin(Coff1); //69 SYSCLK
cla.CTR2 = EPwm2Regs.TBCTR;
//clatocpuvalue2 = CLAcos(Coff2); //73 SYSCLK
cla.CTR3 = EPwm2Regs.TBCTR;
clatocpuvalue3 = CLAasin(Coff3); //42 SYSCLK
cla.CTR4 = EPwm2Regs.TBCTR;
clatocpuvalue4 = CLAacos(Coff4); //49 SYSCLK
cla.CTR5 = EPwm2Regs.TBCTR;
clatocpuvalue5 = __sqrt(Coff5); //18 SYSCLK
cla.CTR6 = EPwm2Regs.TBCTR;
clatocpuvalue6 = CLAatan(Coff6);
cla.CTR7 = EPwm2Regs.TBCTR;
cla.CTR8 = EPwm2Regs.TBCTR;
cla.CTR9 = EPwm2Regs.TBCTR;
在上述运算中只有开方运算是正确的,请教高手指点了???
Seven Han:
回复 kafei zhang:
kafei zhang,感谢你的分享!