簡體   English   中英

如何將2個8位寄存器數據存儲到1個16位變量中?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM