diff options
author | Philip Lampkin <plampkin@chem.wisc.edu> | 2021-03-01 14:52:25 -0600 |
---|---|---|
committer | Philip Lampkin <plampkin@chem.wisc.edu> | 2021-03-01 14:52:25 -0600 |
commit | c638cb47f8a4c173f8f226ea4ba85c6ec08bdec1 (patch) | |
tree | 8fc5a635c722e0206647a3a0d8d4e259264aa6e8 /digital-driver/firmware/TinyWireS/usiTwiSlave.h | |
parent | 6c3a55f379230d190a1b9030dea27fb8b08b3cbf (diff) | |
parent | b6f7e9ed64c93ef06c50291cedadb73c1b1fd1dc (diff) |
philip march first
Diffstat (limited to 'digital-driver/firmware/TinyWireS/usiTwiSlave.h')
-rw-r--r-- | digital-driver/firmware/TinyWireS/usiTwiSlave.h | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/digital-driver/firmware/TinyWireS/usiTwiSlave.h b/digital-driver/firmware/TinyWireS/usiTwiSlave.h new file mode 100644 index 0000000..88b9445 --- /dev/null +++ b/digital-driver/firmware/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_ |