aboutsummaryrefslogtreecommitdiff
path: root/digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
diff options
context:
space:
mode:
authorBlaise Thompson <blaise@untzag.com>2021-04-24 16:55:25 -0500
committerGitHub <noreply@github.com>2021-04-24 16:55:25 -0500
commite9975e2b16f095f2a92946e76af5343b98e76ccc (patch)
treee225b14cba263ce466e6f4ded30de7e2cbe8857d /digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
parentc42f09af60f1a984078a9806eb48afce5fe85b2c (diff)
parent871f3f9ebe774e12ba870eedd2409ee9af6a6189 (diff)
Merge pull request #4 from plampkin/terminology
Updated terminology, add additional descriptions, updated graphics
Diffstat (limited to 'digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h')
-rw-r--r--digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h b/digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
new file mode 100644
index 0000000..88b9445
--- /dev/null
+++ b/digital-driver-board/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
@@ -0,0 +1,96 @@
+/********************************************************************************
+
+Header file for the USI TWI Slave driver.
+
+Created by Donald R. Blake
+donblake at worldnet.att.net
+
+---------------------------------------------------------------------------------
+
+Created from Atmel source files for Application Note AVR312: Using the USI Module
+as an I2C slave.
+
+This program is free software; you can redistribute it and/or modify it under the
+terms of the GNU General Public License as published by the Free Software
+Foundation; either version 2 of the License, or (at your option) any later
+version.
+
+This program is distributed in the hope that it will be useful, but WITHOUT ANY
+WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+PARTICULAR PURPOSE. See the GNU General Public License for more details.
+
+---------------------------------------------------------------------------------
+
+Change Activity:
+
+ Date Description
+ ------ -------------
+ 15 Mar 2007 Created.
+
+********************************************************************************/
+
+
+
+#ifndef _USI_TWI_SLAVE_H_
+#define _USI_TWI_SLAVE_H_
+
+
+
+/********************************************************************************
+
+ includes
+
+********************************************************************************/
+
+#include <stdbool.h>
+#include <avr/sleep.h>
+
+
+
+/********************************************************************************
+
+ prototypes
+
+********************************************************************************/
+
+void usiTwiSlaveInit( uint8_t );
+void usiTwiTransmitByte( uint8_t );
+uint8_t usiTwiReceiveByte( void );
+bool usiTwiDataInTransmitBuffer(void);
+uint8_t usiTwiAmountDataInReceiveBuffer(void);
+// on_XXX handler pointers
+void (*usi_onRequestPtr)(void);
+void (*usi_onReceiverPtr)(uint8_t);
+
+
+/********************************************************************************
+
+ driver buffer definitions
+
+********************************************************************************/
+
+// permitted RX buffer sizes: 1, 2, 4, 8, 16, 32, 64, 128 or 256
+
+#ifndef TWI_RX_BUFFER_SIZE
+#define TWI_RX_BUFFER_SIZE ( 16 )
+#endif
+#define TWI_RX_BUFFER_MASK ( TWI_RX_BUFFER_SIZE - 1 )
+
+#if ( TWI_RX_BUFFER_SIZE & TWI_RX_BUFFER_MASK )
+# error TWI RX buffer size is not a power of 2
+#endif
+
+// permitted TX buffer sizes: 1, 2, 4, 8, 16, 32, 64, 128 or 256
+
+#ifndef TWI_TX_BUFFER_SIZE
+#define TWI_TX_BUFFER_SIZE ( 16 )
+#endif
+#define TWI_TX_BUFFER_MASK ( TWI_TX_BUFFER_SIZE - 1 )
+
+#if ( TWI_TX_BUFFER_SIZE & TWI_TX_BUFFER_MASK )
+# error TWI TX buffer size is not a power of 2
+#endif
+
+
+
+#endif // ifndef _USI_TWI_SLAVE_H_