From 05b06034a8ec920e6f01632e0688d249f330aaf5 Mon Sep 17 00:00:00 2001 From: Daniel Friesel Date: Mon, 26 Dec 2016 18:40:39 +0100 Subject: Firmware: Fix ACK in RX mode --- firmware/main.c | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/firmware/main.c b/firmware/main.c index 85ae808..9fa542f 100644 --- a/firmware/main.c +++ b/firmware/main.c @@ -87,19 +87,21 @@ USB_PUBLIC uchar usbFunctionSetup(uchar data[8]) DDRB &= ~bv_sda; replyBuf[0] = 0; for (i = 0; i <= 8; i++) { - if ((i == 8) && buf) { - DDRB |= bv_sda; - } + _delay_us(20); DDRB &= ~bv_scl; - _delay_us(100); + _delay_us(20); if ((i < 8) && ( PINB & bv_sda)) { replyBuf[0] |= _BV(7-i); } + _delay_us(20); + DDRB |= bv_scl; + _delay_us(20); + if ((i == 7) && buf) { + DDRB |= bv_sda; + } else if ((i == 8) && buf) { DDRB &= ~bv_sda; } - DDRB |= bv_scl; - _delay_us(100); } return 1; } -- cgit v1.2.3