projects
/
pub
/
USBasp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Alter the ring buffer library headers to have both atomic and non-atomic insertion...
[pub/USBasp.git]
/
Projects
/
XPLAINBridge
/
XPLAINBridge.c
diff --git
a/Projects/XPLAINBridge/XPLAINBridge.c
b/Projects/XPLAINBridge/XPLAINBridge.c
index
1f00703
..
f08dfc5
100644
(file)
--- a/
Projects/XPLAINBridge/XPLAINBridge.c
+++ b/
Projects/XPLAINBridge/XPLAINBridge.c
@@
-77,9
+77,6
@@
int main(void)
{
SetupHardware();
{
SetupHardware();
- RingBuffer_InitBuffer(&USBtoUART_Buffer);
- RingBuffer_InitBuffer(&UARTtoUSB_Buffer);
-
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
sei();
LEDs_SetAllLEDs(LEDMASK_USB_NOTREADY);
sei();
@@
-124,7
+121,7
@@
void UARTBridge_Task(void)
/* Read bytes from the USB OUT endpoint into the UART transmit buffer */
if (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
/* Read bytes from the USB OUT endpoint into the UART transmit buffer */
if (CDC_Device_BytesReceived(&VirtualSerial_CDC_Interface))
- RingBuffer_Insert(&USBtoUART_Buffer, CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface));
+ RingBuffer_
Atomic
Insert(&USBtoUART_Buffer, CDC_Device_ReceiveByte(&VirtualSerial_CDC_Interface));
/* Check if the software UART flush timer has expired */
if (TIFR0 & (1 << TOV0))
/* Check if the software UART flush timer has expired */
if (TIFR0 & (1 << TOV0))
@@
-133,7
+130,7
@@
void UARTBridge_Task(void)
/* Read bytes from the UART receive buffer into the USB IN endpoint */
while (UARTtoUSB_Buffer.Count)
/* Read bytes from the UART receive buffer into the USB IN endpoint */
while (UARTtoUSB_Buffer.Count)
- CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_Remove(&UARTtoUSB_Buffer));
+ CDC_Device_SendByte(&VirtualSerial_CDC_Interface, RingBuffer_
Atomic
Remove(&UARTtoUSB_Buffer));
}
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
}
CDC_Device_USBTask(&VirtualSerial_CDC_Interface);
@@
-180,8
+177,12
@@
void EVENT_USB_Device_ConfigurationChanged(void)
{
EndpointConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
{
EndpointConfigSuccess &= CDC_Device_ConfigureEndpoints(&VirtualSerial_CDC_Interface);
- /* Configure the UART flush timer - run at F
CPU
/1024 for maximum interval before overflow */
+ /* Configure the UART flush timer - run at F
cpu
/1024 for maximum interval before overflow */
TCCR0B = ((1 << CS02) | (1 << CS00));
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);
}
else
{
}
else
{