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