0

私はこれを理解するのに苦労しています。助けが必要です。そのため、一部のハードウェアのデータ シートには、「報告されたエラー コードは、検出された各エラーの論理和の結果です。エラー コードは表 3 に示されています。」と記載されています。

表3は

0x00 -> No error
0x01 -> Power error
0x02 -> Receiver error
0x03 -> Transmitter error

次に、データシートに例を示します。

Example :
(ETV001T0C) + checksum -> Test status 0x0C (Rx and Tx error)

0C はエラーバイトです。だから私の最初の質問は - 私の数学は間違っていますか? 彼らがどこから0Cを得ているのか私にはわかりません。0x02 | 0x03 = 0x03。次に、たとえ 0C だったとしても、どのエラーが含まれているかをどのように把握しますか?

4

1 に答える 1

2

テーブルは、オペレータが使用する実際のビット シフト位置を示しています。<<

1 << 0x00 = 0001b (?) -> No error
1 << 0x01 = 0010b -> Power error
1 << 0x02 = 0100b -> Receiver error
1 << 0x03 = 1000b -> Transmitter error

Python を計算機として使用する:

>>> (1 << 2) | (1 << 3)
12
>>> hex((1 << 2) | (1 << 3))
'0xc'
于 2013-04-18T04:25:16.903 に答える