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

cla变量更新问题

ti官网上运行28035的例程,运行cla.asm。C:\tidcs\c28\DSP2803x\v121\DSP2803x_examples\cla_adc_fir_flash

问题:我应用的28035的例程,第一步将10赋值给_VoltFilt是对的,这是_VoltFilt等于10,在向下运行时,我设置的A4是200.375,为何_VoltFilt的不更新呢,还一直是10?

请看:在Example_2803xClaAdcFir.c中定义:

#pragma DATA_SECTION(A,          "CpuToCla1MsgRAM");

float32 A [FILTER_LEN] = {62.5L, -100.25L, 200.375L, -300.25L, 10.0625L};

在cla.asm中:

_X4 .set _X+8
_X3 .set _X+6
_X2 .set _X+4
_X1 .set _X+2
_X0 .set _X+0

_A4 .set _A+8
_A3 .set _A+6
_A2 .set _A+4
_A1 .set _A+2
_A0 .set _A+0

MDEBUGSTOP
MMOVF32 MR0,#10.6
MF32TOUI16 MR2, MR0 ; Get back to Uint16 value
MMOV16 @_VoltFilt, MR2

MMOV32 MR0,@_X4 ;1 Load MR0 with X4
MMOV32 MR1,@_A4 ;2 Load MR1 with A4
MF32TOUI16 MR2, MR1 ;T Get back to Uint16 value
MMOV16 @_VoltFilt, MR2 ;T
MNOP ;3 Wait till I8 to read result

Joey Mao:

你好,

请问你这里定义的_VoltFilt是什么数据类型?

程序中你定义的数组A中A[4]= 10.0625L,如果你_VoltFilt定义的是整形,那显示的值可能就一直是10了

ti官网上运行28035的例程,运行cla.asm。C:\tidcs\c28\DSP2803x\v121\DSP2803x_examples\cla_adc_fir_flash

问题:我应用的28035的例程,第一步将10赋值给_VoltFilt是对的,这是_VoltFilt等于10,在向下运行时,我设置的A4是200.375,为何_VoltFilt的不更新呢,还一直是10?

请看:在Example_2803xClaAdcFir.c中定义:

#pragma DATA_SECTION(A,          "CpuToCla1MsgRAM");

float32 A [FILTER_LEN] = {62.5L, -100.25L, 200.375L, -300.25L, 10.0625L};

在cla.asm中:

_X4 .set _X+8
_X3 .set _X+6
_X2 .set _X+4
_X1 .set _X+2
_X0 .set _X+0

_A4 .set _A+8
_A3 .set _A+6
_A2 .set _A+4
_A1 .set _A+2
_A0 .set _A+0

MDEBUGSTOP
MMOVF32 MR0,#10.6
MF32TOUI16 MR2, MR0 ; Get back to Uint16 value
MMOV16 @_VoltFilt, MR2

MMOV32 MR0,@_X4 ;1 Load MR0 with X4
MMOV32 MR1,@_A4 ;2 Load MR1 with A4
MF32TOUI16 MR2, MR1 ;T Get back to Uint16 value
MMOV16 @_VoltFilt, MR2 ;T
MNOP ;3 Wait till I8 to read result

user3900194:

回复 Joey Mao:

谢谢仔细的为我解答,确实应该是10.

那我我现在又定义了两个变量,都是32位浮点。我在cla,asm中运行,32位的值_CputoCla._claa不随_CputoCla._clab的变化而变化,一直是初始值,但是_VoltFilt是可以的。_VoltFilt是定义的16位整形。难道是因为32位和16位的区别吗?cla不是可以用来32位的吗

我在main.C主函数中初始化:

CputoCla._clab=25000.0; CputoCla._claa=800.0;

;;;;;;;;;;;;;;;;;;;;;;; MMOV32 MR0,@_CputoCla._clab MMOV32 @_CputoCla._claa,MR0 MNOP ;3 Wait till I8 to read result MNOP ;4 Wait till I8 to read result MNOP ;5 Wait till I8 to read result MNOP ;6 Wait till I8 to read result MNOP

;;;;;;;;;;;;;;;;;;;;;; ;MMOVF32 MR0,#105.6 MF32TOUI16 MR2, MR0 ; Get back to Uint16 value MMOV16 @_VoltFilt, MR2

现在的问题是_VoltFilt可以正常的为2500,而_CputoCla._claa为何不等于2500还是原来的初始值_CputoCla._clab呢?

赞(0)
未经允许不得转载:TI中文支持网 » cla变量更新问题
分享到: 更多 (0)