Dynamic C 9 を使用する組み込みハードウェア、Rabbit SBC を使用しています。
マイクロコントローラーを使用して、シリアル ポートの 1 つを使用してデジタル コンパス センサーから情報を読み取っています。
センサーは、1 つの符号付きバイトを使用して値をマイクロコントローラーに送信します。(-85~85)
char
このデータを受け取ったら、それを変数に入れています
これは正の値に対しては正常に機能しますが、センサーが負の値を送信し始めると、読み取り値は 255 にジャンプし、その後 0 に戻ります。これは、最後のビットが負/正を決定するために使用されているためだと思います。そして、実際の値を歪めています。
私の最初の考えは、データ型を に変更することでしたsigned char
。
ただし、私が抱えている問題は、私が使用しているマイクロコントローラーの Dynamic C のバージョンが、符号付きの char 値をネイティブにサポートしておらず、符号なしのみをサポートしていることです。
受け取ったデータを手動で符号付きの値にキャストする方法があるかどうか疑問に思っていますか?