Rev 128 | Blame | Compare with Previous | Last modification | View Log | RSS feed
/********************************************************************************Header file for the USI TWI Slave driver.Created by Donald R. Blakedonblake at worldnet.att.net---------------------------------------------------------------------------------Created from Atmel source files for Application Note AVR312: Using the USI Moduleas an I2C slave.This program is free software; you can redistribute it and/or modify it under theterms of the GNU General Public License as published by the Free SoftwareFoundation; either version 2 of the License, or (at your option) any laterversion.This program is distributed in the hope that it will be useful, but WITHOUT ANYWARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR APARTICULAR 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>/********************************************************************************prototypes********************************************************************************/void usiTwiSlaveInit( uint8_t );void usiTwiTransmitByte( uint8_t );uint8_t usiTwiReceiveByte( void );bool usiTwiDataInReceiveBuffer( void );void (*_onTwiDataRequest)(void);bool usiTwiDataInTransmitBuffer(void);uint8_t usiTwiAmountDataInReceiveBuffer(void);// on_XXX handler pointersvoid (*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_