高级会员
主题
回帖0
积分2064
阅读权限30
注册时间2010-3-14
最后登录1970-1-1
在线时间 小时
|
我的程序的意思是用到串口指定要采样的通道0-4,m16通过串口把采到的数据发送给电脑。现在的问题是在指定的通道上可以正常的返回0x00~0x3ff。但是我后来想直接返回采样的电压数值,REF 2.56V 于是采用了语句
adt=(unsigned int)(((unsigned long)adt*2560)/1023);
adt是采样后的数值uint型,全局变量。adl、adh是uchar,局部变量 、txdat()是串口发送函数。
按照我的理解应当标准化后的电压应当是0-2560。
adt=(unsigned int)(((unsigned long)adt*2560)/1023);
adl=adt;
adh=adt>>8;
txdat(adh);
txdat(adl);
如果不加adt=(unsigned int)(((unsigned long)adt*2560)/1023);可以收到0-3ff的数值;
但是加上adt=(unsigned int)(((unsigned long)adt*2560)/1023);却收不到正确的标准化的电压
搞了几天不得要领请大虾帮忙 |
|