Make software USART used in the XPLAINBridge project directly check and store into the ring buffers, rather than polling from the main program loop to avoid added latency.
This commit is contained in:
parent
9b29d1dc50
commit
79742c5d24
5 changed files with 42 additions and 68 deletions
|
@ -37,6 +37,9 @@
|
|||
#include <avr/io.h>
|
||||
#include <avr/interrupt.h>
|
||||
#include <stdbool.h>
|
||||
|
||||
#include "../XPLAINBridge.h"
|
||||
#include "LightweightRingBuff.h"
|
||||
|
||||
/* Macros: */
|
||||
#define BAUD 9600
|
||||
|
@ -50,24 +53,7 @@
|
|||
#define STXPORT PORTD
|
||||
#define STXDDR DDRD
|
||||
|
||||
/* External Variables: */
|
||||
extern volatile bool srx_done;
|
||||
extern volatile uint8_t stx_count;
|
||||
|
||||
/* Inline Functions: */
|
||||
static inline bool SoftUART_IsReady(void)
|
||||
{
|
||||
return !(stx_count);
|
||||
}
|
||||
|
||||
static inline bool SoftUART_IsReceived(void)
|
||||
{
|
||||
return srx_done;
|
||||
}
|
||||
|
||||
/* Function Prototypes: */
|
||||
void SoftUART_TxByte(uint8_t c);
|
||||
uint8_t SoftUART_RxByte(void);
|
||||
void SoftUART_Init(void);
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue