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

例程BLDC3_1中ADC采样模块的疑问

        int16 DatQ15;
        int32 Tmp;

        DatQ15 = (AdcRegs.ADCRESULT1>>1)&0x7FFF;    // Convert raw result to Q15 (unipolar signal)
        Tmp = (int32)p->Ch2Gain*(int32)DatQ15;      // Tmp = gain*dat => Q28 = Q13*Q15
        p->Ch2Out = (int16)(Tmp>>13);               // Convert Q28 to Q15

大佬们程序如上,AD采样不应该是采样进来存到寄存器吗,怎么最后没有寻进去,还有Tmp = (int32)p->Ch2Gain*(int32)DatQ15;这句的作用是什么呢?

Green Deng:你好,程序执行到这里之前,采样结果已经存储到ADC的采样寄存器里面了(ADCRESULT1),这一段程序的作用可以参考一下这个帖子的内容:
e2echina.ti.com/…/90598

        int16 DatQ15;
        int32 Tmp;

        DatQ15 = (AdcRegs.ADCRESULT1>>1)&0x7FFF;    // Convert raw result to Q15 (unipolar signal)
        Tmp = (int32)p->Ch2Gain*(int32)DatQ15;      // Tmp = gain*dat => Q28 = Q13*Q15
        p->Ch2Out = (int16)(Tmp>>13);               // Convert Q28 to Q15

大佬们程序如上,AD采样不应该是采样进来存到寄存器吗,怎么最后没有寻进去,还有Tmp = (int32)p->Ch2Gain*(int32)DatQ15;这句的作用是什么呢?

user6007383:

回复 Green Deng:

十分感谢您的解答

赞(0)
未经允许不得转载:TI中文支持网 » 例程BLDC3_1中ADC采样模块的疑问
分享到: 更多 (0)