- ATOMIC_BLOCK(ATOMIC_RESTORESTATE)
- {
- /* Pull low for 6µs */
- DDRB |= 1 << W1_PIN;
- _delay_us(6);
- /* Release for 9µs */
- DDRB &= ~(1 << W1_PIN);
- _delay_us(9);
-
- /* Read the line state */
- val |= ((PINB >> W1_PIN) & 1) << i;
- }
-
- _delay_us(55);