PDR3とPDR6をビット単位ではなくバイト単位で扱います。
PDR3.BYTE = PDR6.BYTE;
としたいところですが、表2のように意図したものとはなりません。
PDR6 | |||||||
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
SW4 | SW3 | SW2 | SW1 | - | - | - | - |
↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ |
PDR3 | |||||||
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
- | - | - | - | LED4 | LED3 | LED2 | LED1 |
表2
そこでPDR6を4ビットシフトしPDR3に代入します。(表3)
PDR6 | |||||||
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
SW4 | SW3 | SW2 | SW1 | - | - | - | - |
→4ビットシフト | |||||||
↓ | |||||||
PDR6 | |||||||
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
0 | 0 | 0 | 0 | SW4 | SW3 | SW2 | SW1 |
↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ | ↓ |
PDR3 | |||||||
bit7 | bit6 | bit5 | bit4 | bit3 | bit2 | bit1 | bit0 |
- | - | - | - | LED4 | LED3 | LED2 | LED1 |
表3
IO.PDR3.BYTE = IO.PDR6.BYTE >> 4;
これでOKです。(リスト3)
リスト3