XPROGTarget_SetRxMode();\r
\r
#if defined(XPROG_VIA_HARDWARE_USART)\r
- /* Set /RESET high for a one millisecond to ensure target device is restarted */\r
- PORTD |= (1 << 5);\r
- _delay_ms(1);\r
-\r
/* Turn off receiver and transmitter of the USART, clear settings */\r
- UCSR1A |= (1 << TXC1) | (1 << RXC1);\r
+ UCSR1A = ((1 << TXC1) | (1 << RXC1));\r
UCSR1B = 0;\r
UCSR1C = 0;\r
\r
- /* Set all USART lines as input, tristate */\r
+ /* Make Reset input with pullup to take target out of /RESET, tristate all other pins */\r
DDRD &= ~((1 << 5) | (1 << 3));\r
- PORTD &= ~((1 << 5) | (1 << 3) | (1 << 2));\r
+ PORTD &= ~((1 << 3) | (1 << 2));\r
+ PORTD |= (1 << 5);\r
#else\r
/* Turn off software USART management timer */\r
TCCR1B = 0;\r
\r
- /* Set /RESET high for a one millisecond to ensure target device is restarted */\r
- BITBANG_PDICLOCK_PORT |= BITBANG_PDICLOCK_MASK;\r
- _delay_ms(1);\r
-\r
- /* Set DATA and CLOCK lines to inputs */\r
+ /* Make Reset input with pullup to take target out of /RESET, tristate all other pins */\r
BITBANG_PDIDATA_DDR &= ~BITBANG_PDIDATA_MASK;\r
BITBANG_PDICLOCK_DDR &= ~BITBANG_PDICLOCK_MASK;\r
- \r
- /* Tristate DATA and CLOCK lines */\r
- BITBANG_PDIDATA_PORT &= ~BITBANG_PDIDATA_MASK;\r
BITBANG_PDICLOCK_PORT &= ~BITBANG_PDICLOCK_MASK; \r
+ BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK;\r
#endif\r
}\r
\r