私はいくつかの AVR プログラミングを行っており、このビット操作全体を少し理解していますが、データ型変換についてはまだ確信が持てません。
例えば:
2 つのポート上の 16 個の LED の状態に対応する16 ビット変数 ( myValue
) があります (例: ポート A に 8 個の LED、ポート D に 8 個の LED)。の上位 8 ビットはmyValue
ポート Dにあります。
したがって、私の考えは、基本的(0b0000000011111111 & myValue)
にポート A と(0b1111111100000000 & myValue)
ポート Dの値を取得するために使用することでした。
問題は、その後、次のようなことができるuint8_t portA = (0b0000000011111111 & myValue)
かということです。私は簡単に設定できると信じています
PORTA |= portA
ポート A には 8 つのピンしかないため (私の場合)。
&
ポート D で問題が発生するのは、操作後も 16 ビット変数のままであるため、ポート D では符号なし 8 ビットを使用できないためです。16 ビット変数で 8 ピンのポート D を設定するにはどうすればよいですか?