X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/46677b45896a955b8c62a46d624750213a00b1dd..d4b45e8502a27c0f5ad3e26eabd2b30e84c20bac:/Projects/XPLAINBridge/XPLAINBridge.c diff --git a/Projects/XPLAINBridge/XPLAINBridge.c b/Projects/XPLAINBridge/XPLAINBridge.c index 912e68367..bee770a98 100644 --- a/Projects/XPLAINBridge/XPLAINBridge.c +++ b/Projects/XPLAINBridge/XPLAINBridge.c @@ -1,13 +1,13 @@ /* LUFA Library - Copyright (C) Dean Camera, 2010. + Copyright (C) Dean Camera, 2012. dean [at] fourwalledcubicle [dot] com www.lufa-lib.org */ /* - Copyright 2010 Dean Camera (dean [at] fourwalledcubicle [dot] com) + Copyright 2012 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 @@ -64,10 +64,16 @@ USB_ClassInfo_CDC_Device_t VirtualSerial_CDC_Interface = }; /** Circular buffer to hold data from the host before it is sent to the device via the serial port. */ -RingBuff_t USBtoUART_Buffer; +RingBuffer_t USBtoUART_Buffer; + +/** Underlying data buffer for \ref USBtoUART_Buffer, where the stored bytes are located. */ +static uint8_t USBtoUART_Buffer_Data[128]; /** Circular buffer to hold data from the serial port before it is sent to the host. */ -RingBuff_t UARTtoUSB_Buffer; +RingBuffer_t UARTtoUSB_Buffer; + +/** Underlying data buffer for \ref UARTtoUSB_Buffer, where the stored bytes are located. */ +static uint8_t UARTtoUSB_Buffer_Data[128]; /** Main program entry point. This routine contains the overall program flow, including initial @@ -128,9 +134,9 @@ void UARTBridge_Task(void) if (!(ReceivedByte < 0)) RingBuffer_Insert(&USBtoUART_Buffer, ReceivedByte); } - + /* Check if the UART receive buffer flush timer has expired or buffer is nearly full */ - RingBuff_Count_t BufferCount = RingBuffer_GetCount(&UARTtoUSB_Buffer); + uint16_t BufferCount = RingBuffer_GetCount(&UARTtoUSB_Buffer); if ((TIFR0 & (1 << TOV0)) || (BufferCount > 200)) { /* Clear flush timer expiry flag */ @@ -175,7 +181,7 @@ void SetupHardware(void) /* Enable pull-up on the JTAG TDI pin so we can use it to select the mode */ PORTF |= (1 << 7); - _delay_ms(10); + Delay_MS(10); /* Select the firmware mode based on the JTD pin's value */ CurrentFirmwareMode = (PINF & (1 << 7)) ? MODE_USART_BRIDGE : MODE_PDI_PROGRAMMER; @@ -199,8 +205,8 @@ void EVENT_USB_Device_ConfigurationChanged(void) TCCR0B = ((1 << CS02) | (1 << CS00)); /* Initialize ring buffers used to hold serial data between USB and software UART interfaces */ - RingBuffer_InitBuffer(&USBtoUART_Buffer); - RingBuffer_InitBuffer(&UARTtoUSB_Buffer); + RingBuffer_InitBuffer(&USBtoUART_Buffer, USBtoUART_Buffer_Data, sizeof(USBtoUART_Buffer_Data)); + RingBuffer_InitBuffer(&UARTtoUSB_Buffer, UARTtoUSB_Buffer_Data, sizeof(UARTtoUSB_Buffer_Data)); /* Start the software USART */ SoftUART_Init();