工具/软件:Code Composer Studio
在读取ADC值方面,我在CLA上遇到了一些麻烦。 我开始了基于ClaAdc示例的代码,最初,我修改了这个示例,将3个ADC值读为简单的整数变量,然后尝试将这些值存储在3 (ADC) x 20 (数组大小)数组中,这是我遇到问题的地方。 第一个数组中的值将更新,但其他值 不正确。 我还尝试调整调用的CLA中断的频率,但这没有任何影响。 CLA代码如下所示。
_Cla1Task2: MMOVZ16 MR0, @_ConversionCount ;1当前转换 ;Ch0 MMOV16 MAR1,MR0,#_Ch0 ;2点MAR1寄存器到Ch0[ConversionCount] MNOP ;3等待 MNOP ;4等待 MNOP ;5等待 MNOP ;7等待I8读取结果MADMPV0 ,MULM0,MORM0,@ MAD0,MULV0 ,MAD0,MNOP,M0,MAD0,MNOP,M0,M0,M0,MAD0,M0,M0,M0,M0 MR2 ;9使用指向Ch0[ConversionCount]的指针存储ADCRESULT0 ;Ch1 MMOV16 MAR1,MR0,#_Ch1 ;2点MAR1注册到Ch1[ConversionCount] MNOP ;3等待 MNOP ;4等待 MNOP ;5等待 MNOP ;7等待I8读取结果 MMOVADMR1 ,MADM0,@ MADM0 ,MADM0,MADM0,MADM0,MADM0,MAD1,MADMADM0,M0,MADM0,M0,MADM0,M0,M MR2 ;9使用指向Ch1[ConversionCount]的指针存储ADCRESULT1 ;Ch2 MMOV16 MAR1,MR0,#_Ch2 ;2点MAR1注册到Ch1[ConversionCount] MNOP ;3等待 MNOP ;4等待 MNOP ;5等待MNOP ; 7等待I8读取结果MMOVZMR1 ,MAD1,MESMAD1,MAD1,MADM0,M0,M0,@ MAD1,MADMADM0,M0,M0,MADM0,M0,MAD1,M0,MADM0 MR2 ;9使用指向Ch1的指针存储ADCRESULT1 [ConversionCount]
MADDF32 MR0,MR0,#MNOP ;将1添加到ConversionCount MCMFP32 MR0,#NUM_DATA_points.0 ;将ConversionCount比较为最大 MF32TOUI16 MR0,1.0 ;将count转换为UINT16 MNOP MNOP MBR1 _RestartCount,GEQ ;如果count >=== MMOVI_Points MMOM0 @,MNOP M0,MMOMNOP,M0,MNOP,MMOM0,MNOP,M0,MNOP,MNO0,MMOM0,0.0 ,MNOP 如果未采取分支,则存储当前计数 MSTOP _RestartCount MMOV16 @_ConversionCount, MR1 ;如果采取分支,则重新启动计数 MSTOP MNOP MNOP _CLA1T2End:
是否有人提供帮助? 谢谢你