X-Git-Url: http://git.linex4red.de/pub/USBasp.git/blobdiff_plain/c05c7c7df46a0377db8a72cb32f06aa40153d3e1..8e20e8697ff88d38ac01d62198dbdd552449e4aa:/Projects/XPLAINBridge/Lib/SoftUART.h?ds=inline diff --git a/Projects/XPLAINBridge/Lib/SoftUART.h b/Projects/XPLAINBridge/Lib/SoftUART.h index d992966c0..c30ad651e 100644 --- a/Projects/XPLAINBridge/Lib/SoftUART.h +++ b/Projects/XPLAINBridge/Lib/SoftUART.h @@ -1,59 +1,70 @@ -/* - - soft_uart - - Copyright John Steggall 2009 - -*/ - - -/* - Copyright 2009 John Steggall (steggall.j@gmail.com) - - Permission to use, copy, modify, and distribute this software - and its documentation for any purpose and without fee is hereby - granted, 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 - software without specific, written prior permission. - - The author disclaim all warranties with regard to this - software, including all implied warranties of merchantability - and fitness. In no event shall the author be liable for any - special, indirect or consequential damages or any damages - whatsoever resulting from loss of use, data or profits, whether - in an action of contract, negligence or other tortious action, - arising out of or in connection with the use or performance of - this software. -*/ - -/* - Specifically designed for the xplain board, other uses could be made by furkling through the code - and replacing the port and pin assignments. Also relies on and external interupt to detect the low - level of the start bit, in this case INT0. - Always configured to 9600baud. Can be changed by setting the BITLENGTH define to F_CPU/(desired baud) - code may need optimising when getting any faster to sample the bit in the correct place. No - compensation has been made for the response time of the int routine. - */ - -#ifndef UART_SOFT_H -#define UART_SOFT_H - - /* initialises software uart and enables transmit */ - extern void SoftUART_Init(void); - - /* checks if there is a byte in the receive buffer*/ - extern unsigned char SoftUART_IsReceived(void); - - /* returns the received byte */ - extern unsigned char SoftUART_RxByte(void); - - /* starts a byte send and returns the byte to be sent */ - extern unsigned char SoftUART_TxByte(unsigned char data); - - /* Simulates polling UDRE to see if tx buffer is empty and ready */ - extern unsigned char SoftUART_IsReady(void); - -#endif +/* + LUFA Library + Copyright (C) Dean Camera, 2012. + + dean [at] fourwalledcubicle [dot] com + www.lufa-lib.org +*/ + +/* + Copyright 2010 David Prentice (david.prentice [at] farming [dot] uk) + Copyright 2010 Peter Danneger + 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 + 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 + software without specific, written prior permission. + + The author disclaim all warranties with regard to this + software, including all implied warranties of merchantability + and fitness. In no event shall the author be liable for any + special, indirect or consequential damages or any damages + whatsoever resulting from loss of use, data or profits, whether + in an action of contract, negligence or other tortious action, + arising out of or in connection with the use or performance of + this software. +*/ + +/** \file + * + * Header file for SoftUART.c. + */ + +#ifndef _SOFT_UART_ +#define _SOFT_UART_ + + /* Includes: */ + #include + #include + #include + + #include "../XPLAINBridge.h" + + /* Macros: */ + #define SRX PD0 + #define SRXPIN PIND + #define SRXPORT PORTD + + #define STX PD1 + #define STXPORT PORTD + #define STXDDR DDRD + + /* Inline Functions: */ + static inline void SoftUART_SetBaud(const uint32_t Baud) + { + uint16_t BitTime = ((F_CPU / Baud) - 1); + + OCR1A = BitTime; + OCR3A = BitTime; + } + + /* Function Prototypes: */ + void SoftUART_Init(void); + +#endif +