0

私は比較的 Simulink に慣れていないので、1 バイトから 1 ~ 3 個の特定のビットを抽出する可能性を探しています。私の知る限り、定数の入力形式 (ビン、10 進数、16 進数) は次の場合には関係ありません!? しかし、定数 "1234" が 10 進数ではなく 16 進数であると、どのように言えますか?

私のモデルでは、ソースとして "Constant Block" を使用します (m ファイルから取得される MATLAB 変数によってパラメーター化されます)。「Extract Bits Block」をさらに処理すると、互換性のないデータ型でエラーが発生します。

誰かがこの問題に対処するのを手伝ってくれますか?

ごきげんよう、ポエスクロン

4

3 に答える 3

2

おそらく、.m 初期化ファイルで hex->dec の変換を行い、この値を Simulink で使用する必要があります。

于 2011-01-26T10:43:57.730 に答える
1

おそらくこれは最も洗練された解決策ではないかもしれませんが、入力を 10 進数に変換し、さらに使用するために OR および AND 論理ブロックを介して BCD 表現を作成しました。

于 2011-01-28T13:38:01.730 に答える
0

Communications Toolbox/Blockset がある場合は、Integer to Bit Converterブロックを使用して 2 進数のベクトルに変換し、必要な「ビット」を抽出するだけです。Bit to Integer Converterブロックは逆変換を行います。

Communicatins Blockset がない場合は、単純な MATLAB Function ブロックを使用してこれと同様のことを行うのは難しくありません。

ここに画像の説明を入力

于 2015-08-08T14:58:36.657 に答える