-1

Arduino では、2 つの PISO (パラレル イン - シリーズ アウト) シフト レジスタからの 8 ビット 2 進数/文字列を 1 つの 16 ビット バイナリ文字列に結合しようとしています。Arduino switchVar1 の shiftIn() コマンドで変数 (switchVar1) に格納される 2 進数switchVar1 = shiftIn(dataPin, clockPin); は、最初に によって定義されましたbyte switchVar1 = 72;。これを行っているので、switch() 関数を使用してバイナリ文字列を読み取り、16 個のボタンすべてのさまざまな組み合わせが定義される 16 個の連絡先/ボタンがあるため、さまざまな組み合わせを実行できるため、16 ビットの文字列が必要です。 2 進数。基本的に、2 つの 8 ビット 2 進数配列を 1 つの配列に変換する方法を尋ねています。私は C++ に全く慣れていないので、おそらく考えもしなかった基本的な解決策があるかもしれません。

4

2 に答える 2

1

皆さんのコメントのおかげで解決しました。switchVar1 = shiftIn(dataPin, clockPin); switchVar2 = shiftIn(dataPin2, clockPin2); uint16_t switchVariable = switchVar1 | (switchVar2<<8); 最初に2つのバイトファイルを作成し、1つ(switchVar2)の数値を左に8ステップ(リテラルになるように)(ビット単位の演算子を使用して)「シフト」し、両方 <<をビット単位で追加しました。 1 つのuint16_t変数型の OR 演算子 (パイプ記号 |) 。次に、コマンドを使用してすべての組み合わせを読み取りますswitch() case。(また、私は一般的にプログラミング言語にばかばかしい初心者であり、「配列」と言うのは私の悪いことでした。)

于 2021-07-06T17:49:56.873 に答える