2265|2

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

2812 无刷机的控制 ADC方面 [复制链接]

    关于这段程序我有一个不懂的地方,就是为什么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

最新回复

28xx的都是左对齐的12位adc结果,应该右移4位,估计是运算里面有乘法,所以就不移了  详情 回复 发表于 2016-2-29 09:54
 
点赞 关注

回复
举报

667

帖子

3

TA的资源

版主

沙发
 
看一下2812的adc数据对其方式。
应该是左对齐?
 
 

回复

2700

帖子

0

TA的资源

五彩晶圆(初级)

板凳
 
28xx的都是左对齐的12位adc结果,应该右移4位,估计是运算里面有乘法,所以就不移了
 
个人签名作为一个水军,就是尽量的多回帖,因为懂的技术少,所以回帖水分大,见谅!
EEWORLD开发板置换群:309018200,——电工们免费装β的天堂,商家勿入!加群暗号:喵
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表