From 7aecda6fda5bcced68d72b0cf73d00174aa5c7cd Mon Sep 17 00:00:00 2001 From: Dean Camera <dean@fourwalledcubicle.com> Date: Thu, 10 Dec 2009 00:54:08 +0000 Subject: [PATCH] Fix PDITarget_ReceiveByte() not discarding the start bit properly, and reading in the bits inverted and in the wrong order. --- Projects/AVRISP/Lib/PDITarget.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Projects/AVRISP/Lib/PDITarget.c b/Projects/AVRISP/Lib/PDITarget.c index 7b35a33360..a0bbf7dfa1 100644 --- a/Projects/AVRISP/Lib/PDITarget.c +++ b/Projects/AVRISP/Lib/PDITarget.c @@ -98,14 +98,16 @@ uint8_t PDITarget_ReceiveByte(void) // One Start Bit while (PDIDATA_LINE_PIN & PDIDATA_LINE_MASK); TOGGLE_PDI_CLOCK; - + + TOGGLE_PDI_CLOCK; + // Eight Data Bits for (uint8_t i = 0; i < 8; i++) { - if (PDIDATA_LINE_PIN & PDIDATA_LINE_MASK) - ReceivedByte |= 0x01; + if (!(PDIDATA_LINE_PIN & PDIDATA_LINE_MASK)) + ReceivedByte |= 0x80; - ReceivedByte <<= 1; + ReceivedByte >>= 1; TOGGLE_PDI_CLOCK; }