Replace internal Pipe_BytesToEPSizeMask() routine with a new version which results...
[pub/USBasp.git] / Projects / XPLAINBridge / Lib / SoftUART.h
index 416490d..d0b03c0 100644 (file)
                #include <avr/io.h>
                #include <avr/interrupt.h>
                #include <stdbool.h>
+               
+               #include "../XPLAINBridge.h"
+               #include "LightweightRingBuff.h"
 
        /* Macros: */
-               #define BAUD       9600
-               #define BIT_TIME   (uint16_t)((F_CPU + (BAUD / 2)) / BAUD)
-
                #define SRX        PD0
                #define SRXPIN     PIND
                #define SRXPORT    PORTD
                #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)
+       /* Inline Functions: */ 
+               static inline void SoftUART_SetBaud(const uint32_t Baud)
                {
-                       return srx_done;
+                       uint16_t BitTime = ((F_CPU / Baud) - 1);
+               
+                       OCR1A = BitTime;
+                       OCR3A = BitTime;
                }
 
        /* Function Prototypes: */
-               void    SoftUART_TxByte(uint8_t c);
-               uint8_t SoftUART_RxByte(void);
                void    SoftUART_Init(void);
 
 #endif
\ No newline at end of file