Subversion Repositories group.electronics

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
117 pfowler 1
/*
2
  twi.h - TWI/I2C library for Wiring & Arduino
3
  Copyright (c) 2006 Nicholas Zambetti.  All right reserved.
4
 
5
  This library is free software; you can redistribute it and/or
6
  modify it under the terms of the GNU Lesser General Public
7
  License as published by the Free Software Foundation; either
8
  version 2.1 of the License, or (at your option) any later version.
9
 
10
  This library is distributed in the hope that it will be useful,
11
  but WITHOUT ANY WARRANTY; without even the implied warranty of
12
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
13
  Lesser General Public License for more details.
14
 
15
  You should have received a copy of the GNU Lesser General Public
16
  License along with this library; if not, write to the Free Software
17
  Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA  02110-1301  USA
18
*/
19
 
20
#ifndef twi_h
21
#define twi_h
22
  #include "util/twi.h"
23
  #include <inttypes.h>
24
 
25
  #define true 1
26
  #define false 0
27
 
28
  #ifndef TWI_FREQ
29
  #define TWI_FREQ 400000L
30
  #endif
31
 
32
  #ifndef TWI_BUFFER_LENGTH
33
  #define TWI_BUFFER_LENGTH 32
34
  #endif
35
 
36
  #define TWI_READY 0
37
  #define TWI_MRX   1
38
  #define TWI_MTX   2
39
  #define TWI_SRX   3
40
  #define TWI_STX   4
41
 
42
  void twi_init(void);
43
  void twi_setAddress(uint8_t);
44
  uint8_t twi_readFrom(uint8_t, uint8_t*, uint8_t, uint8_t);
45
  uint8_t twi_writeTo(uint8_t, uint8_t*, uint8_t, uint8_t, uint8_t);
46
  uint8_t twi_transmit(const uint8_t*, uint8_t);
47
  void twi_attachSlaveRxEvent( void (*)(uint8_t*, int) );
48
  void twi_attachSlaveTxEvent( void (*)(void) );
49
  void twi_reply(uint8_t);
50
  void twi_stop(void);
51
  void twi_releaseBus(void);
52
 
53
#endif
54