aboutsummaryrefslogtreecommitdiff
path: root/digital-driver/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
diff options
context:
space:
mode:
authorPhilip Lampkin <plampkin@chem.wisc.edu>2021-03-01 14:52:25 -0600
committerPhilip Lampkin <plampkin@chem.wisc.edu>2021-03-01 14:52:25 -0600
commitc638cb47f8a4c173f8f226ea4ba85c6ec08bdec1 (patch)
tree8fc5a635c722e0206647a3a0d8d4e259264aa6e8 /digital-driver/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
parent6c3a55f379230d190a1b9030dea27fb8b08b3cbf (diff)
parentb6f7e9ed64c93ef06c50291cedadb73c1b1fd1dc (diff)
philip march first
Diffstat (limited to 'digital-driver/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h')
-rw-r--r--digital-driver/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h96
1 files changed, 96 insertions, 0 deletions
diff --git a/digital-driver/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h b/digital-driver/firmware/TinyWire-master/TinyWireS/usiTwiSlave.h
new file mode 100644
index 0000000..88b9445
--- /dev/null
+++ b/digital-driver/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_