X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/f201f6697b7f99b63389509b42112026b8f6f76f..7cac5e22d7fae140b3ae4167a706d0dc07b9cf3b:/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c?ds=sidebyside diff --git a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c index 04bfcb5f8..e2b230166 100644 --- a/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c +++ b/Projects/AVRISP-MKII/Lib/ISP/ISPTarget.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2011. + Copyright (C) Dean Camera, 2012. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2011 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2012 Dean Camera (dean [at] fourwalledcubicle [dot] com) Permission to use, copy, modify, distribute, and sell this software and its documentation for any purpose is hereby granted @@ -129,9 +129,12 @@ ISR(TIMER1_COMPA_vect, ISR_BLOCK) { SoftSPI_Data <<= 1; - if (!(SoftSPI_BitsRemaining--)) - TCCR1B = 0; - + if (!(--SoftSPI_BitsRemaining)) + { + TCCR1B = 0; + TIFR1 = (1 << OCF1A); + } + if (PINB & (1 << 3)) SoftSPI_Data |= (1 << 0); } @@ -313,7 +316,7 @@ void ISPTarget_LoadExtendedAddress(void) /** Waits until the last issued target memory programming command has completed, via the check mode given and using * the given parameters. * - * \param[in] ProgrammingMode Programming mode used and completion check to use, a mask of PROG_MODE_* constants + * \param[in] ProgrammingMode Programming mode used and completion check to use, a mask of \c PROG_MODE_* constants * \param[in] PollAddress Memory address to poll for completion if polling check mode used * \param[in] PollValue Poll value to check against if polling check mode used * \param[in] DelayMS Milliseconds to delay before returning if delay check mode used @@ -357,6 +360,9 @@ uint8_t ISPTarget_WaitForProgComplete(const uint8_t ProgrammingMode, break; } + /* Program complete - reset timeout */ + wdt_reset(); + return ProgrammingStatus; }