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

28377D中CLA不能读取AD数据

使用28377D的CLA功能,能在CLA中断中正常控制LED的翻转,并且可以对pwm的占空比进行控制,但是不能读取ad的数据。如果仅在主函数中断里读取可以读取。
数据声明为:
//声明cla中使用的变量,或者共享变量
#ifdef __cplusplus
#pragma DATA_SECTION("CpuToCla1MsgRAM");
float AdcResults_A0;
#pragma DATA_SECTION("CpuToCla1MsgRAM");
float AdcResults_B0;
#else
#pragma DATA_SECTION(AdcResults_A0,"CpuToCla1MsgRAM");
float AdcResults_A0;
#pragma DATA_SECTION(AdcResults_B0,"CpuToCla1MsgRAM");
float AdcResults_B0;
#endif //__cplusplus

CLA结束返回主程序中断为:

interrupt void cla1Isr1 ()
{//// Clear the ADC interrupt flag so the next SOC can occur// Clear the PIEACK bits so another interrupt can be taken//AdcaRegs.ADCINTFLGCLR.bit.ADCINT1 = 1; //make sure INT1 flag is clearedPieCtrlRegs.PIEACK.all = (PIEACK_GROUP1 | PIEACK_GROUP11);a=AdcResults_A0;


}
 

CLA内中断程序为:

__interrupt void Cla1Task1 ( void )
{
//Res = Num/Den;LED8_ON_OFF;AdcResults_A0 = AdcaResultRegs.ADCRESULT0;EPwm2Regs.CMPA.bit.CMPA = 100;//设定A通道占空比,此处可以直接控制


}

喝可乐的马甲:

你把AdcResults_A0的Memory地址位置放错了,从CLA1传到CPU要用Cla1ToCpuMsgRAM。

赞(0)
未经允许不得转载:TI中文支持网 » 28377D中CLA不能读取AD数据
分享到: 更多 (0)