2812 无刷机的控制 ADC方面

2019-03-24 09:32发布

    关于这段程序我有一个不懂的地方,就是为什么DatQ15 = (AdcRegs.ADCRESULT0>>1)&0x7FFF要右移一位后才相与呢??以及这个程序有什么用呢?下面附录部分程序!!  DatQ15 = (AdcRegs.ADCRESULT0>>1)&0x7FFF;    // Convert raw result to Q15 (unipolar signal)
        Tmp = (int32)p->Ch1Gain*(int32)DatQ15;      // Tmp = gain*dat => Q28 = Q13*Q15
        p->Ch1Out = (int16)(Tmp>>13);               // Convert Q28 to Q15
        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
        DatQ15 = (AdcRegs.ADCRESULT2>>1)&0x7FFF;    // Convert raw result to Q15 (unipolar signal)
        Tmp = (int32)p->Ch3Gain*(int32)DatQ15;      // Tmp = gain*dat => Q28 = Q13*Q15
        p->Ch3Out = (int16)(Tmp>>13);               // Convert Q28 to Q15
        DatQ15 = (AdcRegs.ADCRESULT3>>1)&0x7FFF;    // Convert raw result to Q15 (unipolar signal)
        Tmp = (int32)p->Ch4Gain*(int32)DatQ15;      // Tmp = gain*dat => Q28 = Q13*Q15
        p->Ch4Out = (int16)(Tmp>>13);               // Convert Q28 to Q15
        AdcRegs.ADCTRL2.all |= 0x4040;            // Reset the sequence 此帖出自小平头技术问答
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
2条回答
nemo1991
1楼-- · 2019-03-24 16:38
 精彩回答 2  元偷偷看……
elvike
2楼-- · 2019-03-24 22:24
< :TI_MSP430_内容页_SA7 --> 28xx的都是左对齐的12位adc结果,应该右移4位,估计是运算里面有乘法,所以就不移了

一周热门 更多>

相关问题

    相关文章