projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Added Class, ClassDevice, ClassHost and ClassCommon to the internal class driver...
[pub/USBasp.git]
/
Projects
/
AVRISP-MKII
/
Lib
/
XPROG
/
XPROGTarget.c
diff --git
a/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
b/Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
index
ae292a0
..
58df785
100644
(file)
--- a/
Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
+++ b/
Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
@@
-1,13
+1,13
@@
/*
LUFA Library
/*
LUFA Library
- Copyright (C) Dean Camera, 201
0
.
+ Copyright (C) Dean Camera, 201
1
.
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
dean [at] fourwalledcubicle [dot] com
www.lufa-lib.org
*/
/*
- Copyright 201
0
Dean Camera (dean [at] fourwalledcubicle [dot] com)
+ Copyright 201
1
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
Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
@@
-92,7
+92,8
@@
void XPROGTarget_EnableTargetTPI(void)
void XPROGTarget_DisableTargetPDI(void)
{
/* Switch to Rx mode to ensure that all pending transmissions are complete */
void XPROGTarget_DisableTargetPDI(void)
{
/* Switch to Rx mode to ensure that all pending transmissions are complete */
- XPROGTarget_SetRxMode();
+ if (IsSending)
+ XPROGTarget_SetRxMode();
/* Turn off receiver and transmitter of the USART, clear settings */
UCSR1A = ((1 << TXC1) | (1 << RXC1));
/* Turn off receiver and transmitter of the USART, clear settings */
UCSR1A = ((1 << TXC1) | (1 << RXC1));
@@
-108,7
+109,8
@@
void XPROGTarget_DisableTargetPDI(void)
void XPROGTarget_DisableTargetTPI(void)
{
/* Switch to Rx mode to ensure that all pending transmissions are complete */
void XPROGTarget_DisableTargetTPI(void)
{
/* Switch to Rx mode to ensure that all pending transmissions are complete */
- XPROGTarget_SetRxMode();
+ if (IsSending)
+ XPROGTarget_SetRxMode();
/* Turn off receiver and transmitter of the USART, clear settings */
UCSR1A |= (1 << TXC1) | (1 << RXC1);
/* Turn off receiver and transmitter of the USART, clear settings */
UCSR1A |= (1 << TXC1) | (1 << RXC1);
@@
-140,7
+142,7
@@
void XPROGTarget_SendByte(const uint8_t Byte)
UDR1 = Byte;
}
UDR1 = Byte;
}
-/** Receives a byte via the
software USART, blocking until data is receiv
ed.
+/** Receives a byte via the
hardware USART, blocking until data is received or timeout expir
ed.
*
* \return Received byte from the USART
*/
*
* \return Received byte from the USART
*/
@@
-151,7
+153,7
@@
uint8_t XPROGTarget_ReceiveByte(void)
XPROGTarget_SetRxMode();
/* Wait until a byte has been received before reading */
XPROGTarget_SetRxMode();
/* Wait until a byte has been received before reading */
- while (!(UCSR1A & (1 << RXC1)) &&
TimeoutTicksRemaining
);
+ while (!(UCSR1A & (1 << RXC1)) &&
!(TimeoutExpired)
);
return UDR1;
}
return UDR1;
}
@@
-169,6
+171,7
@@
void XPROGTarget_SendIdle(void)
/* Wait for a full cycle of the clock */
while (PIND & (1 << 5));
while (!(PIND & (1 << 5)));
/* Wait for a full cycle of the clock */
while (PIND & (1 << 5));
while (!(PIND & (1 << 5)));
+ while (PIND & (1 << 5));
}
}
}
}
@@
-177,6
+180,7
@@
static void XPROGTarget_SetTxMode(void)
/* Wait for a full cycle of the clock */
while (PIND & (1 << 5));
while (!(PIND & (1 << 5)));
/* Wait for a full cycle of the clock */
while (PIND & (1 << 5));
while (!(PIND & (1 << 5)));
+ while (PIND & (1 << 5));
PORTD |= (1 << 3);
DDRD |= (1 << 3);
PORTD |= (1 << 3);
DDRD |= (1 << 3);