亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何判斷 16 位二進制編碼值是增加還是減少

如何判斷 16 位二進制編碼值是增加還是減少

Helenr 2022-05-11 14:40:12
我試圖確定一個數字是增加還是減少。編碼器返回一個無符號的 16 位值,如果編碼數據增加或減少,該值將增加、減少或保持不變。我每 x 秒獲取編碼值并將其附加到列表中,并且我試圖比較這些值以查看它們是否在增加/減少。我將每個值與先前獲得的值進行檢查,但我遇到的唯一問題是在 65535 處,數據回繞到 0。我將如何解釋這些實例?
查看完整描述

2 回答

?
四季花海

TA貢獻1811條經驗 獲得超5個贊

您需要確定讀數之間數據可以增加的數量限制。然后檢查是否已超過。例如,如果您的限制是 100,而之前的值是 65500,您需要檢查新值是否在 655001-655350-65 范圍內。

例如:

if new_val > old_val or \
   new_val < (old_val + tolerance) % 65536:

...tolerance您要識別的最大增加在哪里。


查看完整回答
反對 回復 2022-05-11
?
GCT1015

TA貢獻1827條經驗 獲得超4個贊

令人難以置信的是,在兩次測量之間,值的變化超過了其總范圍的一半(如果確實如此,您無法確定它的移動方式),因此如果您得到的差異大于 32,768,請從中減去 65,536,如果您得到小于 -32,768 的差值加上 65,536。

這樣,如果值從例如 65,535 變為 2(原始差異為 -65,533),您將注冊為 +3(= -65,533 + 65,536)的差異,這就是您想要的。如果您以另一種方式越過環繞,則相同的過程會反過來發生。


查看完整回答
反對 回復 2022-05-11
  • 2 回答
  • 0 關注
  • 154 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號