projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Namespace out the internal endpoint globals in the XMEGA architecture.
[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
7cf62ff
..
58df785
100644
(file)
--- a/
Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
+++ b/
Projects/AVRISP-MKII/Lib/XPROG/XPROGTarget.c
@@
-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);