小さい変数のビットを大きい変数のビットに任意にマップする方法があるかどうか疑問に思っていました。私の質問は例で理解しやすいと思います。
16 ビットのレジスタ "PORTA" があり、次に 8 ビットの変数 OPT1 がある場合、次のように書き込めるようにしたいと考えています。
PORTA = 0x0000
OPT1 = 0xAB
そして、0x0A0B を含む PORTA になります。
ビットは、変数 OPT1 に書き込むだけで、次のように自動的にマップされます。
OPT1_bit0 => PORTA_bit0
OPT1_bit1 => PORTA_bit1
OPT1_bit2 => PORTA_bit2
OPT1_bit3 => PORTA_bit3
OPT1_bit4 => PORTA_bit8
OPT1_bit5 => PORTA_bit9
OPT1_bit6 => PORTA_bit10
OPT1_bit7 => PORTA_bit11