如何把两个8位寄存器的值赋给一个变量
发布网友
发布时间:2024-09-29 06:05
我来回答
共1个回答
热心网友
时间:2024-09-29 08:07
你这肯定不行啊。两个寄存器的数据是不能这样相加的,这10个数据位本来就是1个数据,你用8位的变量是装不下的,你这么加,连数据都破坏了。
首先你要确定你需要的AD转换精度,10位的AD转换结果出来后,你可以用全部10位来进行下一步计算,这样可以达到最高的精度,也就是转换误差小
于1/1024,但同时你必须用2个字节来存储这个变量,因为这就不是一个8位数据;如果你不需要这么高的精度,也可以降低数据精度,用一个字节来表示这个信号量,比如只采用其中的8位(误差小
于1/256),但是必须是保留高8位,只能舍弃低位的数据,就像212这个数,你降低精度也只能舍弃个位的2,保留近似值210,不能舍掉百位的2,留下个12。
你的问题中没有提到两字节转换结果的数据存储形式。假设A存储8位的结果,B的高两位存储2位的结果,它们谁是高位谁是低位必须弄清,如果B是低位,那么整个10位数据就是A*4+B/64,采用8位精度表示的话可以直接用A;如果A是低位,B是高位,那么10位转换结果是B*4+A,8位精度话就是B+A/4.