/*
LUFA Library
- Copyright (C) Dean Camera, 2010.
-
+ Copyright (C) Dean Camera, 2012.
+
dean [at] fourwalledcubicle [dot] com
- www.fourwalledcubicle.com
+ www.lufa-lib.org
*/
/*
Copyright 2010 David Prentice (david.prentice [at] farming [dot] uk)
Copyright 2010 Peter Danneger
- 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
+ Permission to use, copy, modify, distribute, and sell this
software and its documentation for any purpose is hereby granted
- without fee, provided that the above copyright notice appear in
+ without fee, provided that the above copyright notice appear in
all copies and that both that the copyright notice and this
- permission notice and warranty disclaimer appear in supporting
- documentation, and that the name of the author not be used in
- advertising or publicity pertaining to distribution of the
+ permission notice and warranty disclaimer appear in supporting
+ documentation, and that the name of the author not be used in
+ advertising or publicity pertaining to distribution of the
software without specific, written prior permission.
The author disclaim all warranties with regard to this
this software.
*/
+/** \file
+ *
+ * Header file for SoftUART.c.
+ */
+
#ifndef _SOFT_UART_
#define _SOFT_UART_
#include <avr/interrupt.h>
#include <stdbool.h>
- /* Macros: */
- #define BAUD 9600
- #define BIT_TIME (uint16_t)((F_CPU + (BAUD / 2)) / BAUD)
+ #include "../XPLAINBridge.h"
+ /* Macros: */
#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)
+ static inline void SoftUART_SetBaud(const uint32_t Baud)
{
- return !(stx_count);
- }
+ uint16_t BitTime = ((F_CPU / Baud) - 1);
- static inline bool SoftUART_IsReceived(void)
- {
- return srx_done;
+ OCR1A = BitTime;
+ OCR3A = BitTime;
}
/* Function Prototypes: */
- void SoftUART_TxByte(uint8_t c);
- uint8_t SoftUART_RxByte(void);
- void SoftUART_Init(void);
+ void SoftUART_Init(void);
+
+#endif
-#endif
\ No newline at end of file