From bd5e8f07b71b4fa0c058c0edfa8ff3f59ab31610 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Wed, 23 Dec 2009 13:28:44 +0000 Subject: Stub out more of the TPI programming protocol routines in the AVRISP project. --- Projects/AVRISP/Lib/TPITarget.c | 22 ++++++++++++++++++++-- 1 file changed, 20 insertions(+), 2 deletions(-) (limited to 'Projects/AVRISP/Lib/TPITarget.c') diff --git a/Projects/AVRISP/Lib/TPITarget.c b/Projects/AVRISP/Lib/TPITarget.c index 8b47006c96..464d403057 100644 --- a/Projects/AVRISP/Lib/TPITarget.c +++ b/Projects/AVRISP/Lib/TPITarget.c @@ -312,8 +312,26 @@ void TPITarget_SendBreak(void) */ bool TPITarget_WaitWhileNVMBusBusy(void) { - // TODO - + TCNT0 = 0; + TIFR0 = (1 << OCF1A); + + uint8_t TimeoutMS = TPI_NVM_TIMEOUT_MS; + + /* Poll the STATUS register to check to see if NVM access has been enabled */ + while (TimeoutMS) + { + /* Send the LDCS command to read the TPI STATUS register to see the NVM bus is active */ + TPITarget_SendByte(TPI_CMD_SLDCS | TPI_STATUS_REG); + if (TPITarget_ReceiveByte() & TPI_STATUS_NVM) + return true; + + if (TIFR0 & (1 << OCF1A)) + { + TIFR0 = (1 << OCF1A); + TimeoutMS--; + } + } + return false; } -- cgit v1.2.3