forked from mfulz_github/qmk_firmware
Use _delay_us() function in the XPROGTarget.c file to ensure timing requirements are met, rather than a fixed number of NOPs.
This commit is contained in:
parent
75d27f8ef0
commit
331e8dece6
@ -152,11 +152,9 @@ void XPROGTarget_EnableTargetPDI(void)
|
|||||||
DDRD |= (1 << 5) | (1 << 3);
|
DDRD |= (1 << 5) | (1 << 3);
|
||||||
DDRD &= ~(1 << 2);
|
DDRD &= ~(1 << 2);
|
||||||
|
|
||||||
/* Set DATA line high for at least 90ns to disable /RESET functionality (note: too long will enable it again,
|
/* Set DATA line high for at least 90ns to disable /RESET functionality */
|
||||||
* so a fixed number of NOPs are used here */
|
|
||||||
PORTD |= (1 << 3);
|
PORTD |= (1 << 3);
|
||||||
asm volatile ("NOP"::);
|
_delay_us(1);
|
||||||
asm volatile ("NOP"::);
|
|
||||||
|
|
||||||
/* Set up the synchronous USART for XMEGA communications -
|
/* Set up the synchronous USART for XMEGA communications -
|
||||||
8 data bits, even parity, 2 stop bits */
|
8 data bits, even parity, 2 stop bits */
|
||||||
@ -168,11 +166,9 @@ void XPROGTarget_EnableTargetPDI(void)
|
|||||||
BITBANG_PDIDATA_DDR |= BITBANG_PDIDATA_MASK;
|
BITBANG_PDIDATA_DDR |= BITBANG_PDIDATA_MASK;
|
||||||
BITBANG_PDICLOCK_DDR |= BITBANG_PDICLOCK_MASK;
|
BITBANG_PDICLOCK_DDR |= BITBANG_PDICLOCK_MASK;
|
||||||
|
|
||||||
/* Set DATA line high for at least 90ns to disable /RESET functionality (note: too long will enable it again,
|
/* Set DATA line high for at least 90ns to disable /RESET functionality */
|
||||||
* so a fixed number of NOPs are used here */
|
|
||||||
BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK;
|
BITBANG_PDIDATA_PORT |= BITBANG_PDIDATA_MASK;
|
||||||
asm volatile ("NOP"::);
|
_delay_us(1);
|
||||||
asm volatile ("NOP"::);
|
|
||||||
|
|
||||||
/* Fire timer compare channel A ISR to manage the software USART */
|
/* Fire timer compare channel A ISR to manage the software USART */
|
||||||
OCR1A = BITS_BETWEEN_USART_CLOCKS;
|
OCR1A = BITS_BETWEEN_USART_CLOCKS;
|
||||||
@ -193,7 +189,7 @@ void XPROGTarget_EnableTargetTPI(void)
|
|||||||
/* Set /RESET line low for at least 400ns to enable TPI functionality */
|
/* Set /RESET line low for at least 400ns to enable TPI functionality */
|
||||||
AUX_LINE_DDR |= AUX_LINE_MASK;
|
AUX_LINE_DDR |= AUX_LINE_MASK;
|
||||||
AUX_LINE_PORT &= ~AUX_LINE_MASK;
|
AUX_LINE_PORT &= ~AUX_LINE_MASK;
|
||||||
_delay_ms(1);
|
_delay_us(1);
|
||||||
|
|
||||||
#if defined(XPROG_VIA_HARDWARE_USART)
|
#if defined(XPROG_VIA_HARDWARE_USART)
|
||||||
/* Set Tx and XCK as outputs, Rx as input */
|
/* Set Tx and XCK as outputs, Rx as input */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user