[英]How do I Store 2 8bit Register data into 1 16bit varrible?
我正在考虑从ADC转换中获取10位数据并将其存储为1个16位整数数据,如0x03 ADRESH 0xFF ADRESL。 我现在正在做的是
data = 0x03 & ADRESH;
data = data << 8;
data = data & 0x03FF & ADRESL;
这项工作会以我认为应该的方式进行还是我会丢失一些东西? 谢谢您的帮助
你为什么不用|
操作员? short data = ((0x03 & ADRESH) << 8) | ADRESL;
应该工作正常。
你的代码不起作用
data = data & 0x03FF & ADRESL;
应该更接近
data = data | ADRESL;
or
data |= ADRESL;
在16位data
执行8字节移位是很好的。
注意:不需要& 0x03FF
。
注意:确保的数据类型data
是至少16位。
注意:如果您仍然遇到问题,请确保10位对齐符合您的想法。 许多A / D模块允许10位数据位于高10位而不是低位。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.