PCF8574 I2C Portexpanders used to provide data, address and controlbus interface

Dependents:   mbed_bus

Committer:
wim
Date:
Sun Jan 25 17:50:03 2015 +0000
Revision:
0:12207c70f4ea
PCF8574 Bus Class. First release, converted into lib.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
wim 0:12207c70f4ea 1 /* PCF8574_AddressBus - Use the PCF8574 I2C Port Extender for controlling the Address Bus
wim 0:12207c70f4ea 2 * Copyright (c) 2011 Wim Huiskamp
wim 0:12207c70f4ea 3 *
wim 0:12207c70f4ea 4 * Released under the MIT License: http://mbed.org/license/mit
wim 0:12207c70f4ea 5 *
wim 0:12207c70f4ea 6 * version 0.2 Initial Release
wim 0:12207c70f4ea 7 */
wim 0:12207c70f4ea 8 #ifndef _PCF8574_ADDRESSBUS_H
wim 0:12207c70f4ea 9 #define _PCF8574_ADDRESSBUS_H
wim 0:12207c70f4ea 10
wim 0:12207c70f4ea 11
wim 0:12207c70f4ea 12 //Pin Defines for PCF8574 Address Bus
wim 0:12207c70f4ea 13 #define D_A0 0x01
wim 0:12207c70f4ea 14 #define D_A1 0x02
wim 0:12207c70f4ea 15 #define D_A2 0x04
wim 0:12207c70f4ea 16 #define D_A3 0x08
wim 0:12207c70f4ea 17 #define D_A4 0x10
wim 0:12207c70f4ea 18 #define D_A5 0x20
wim 0:12207c70f4ea 19 #define D_A6 0x40
wim 0:12207c70f4ea 20 #define D_A7 0x80
wim 0:12207c70f4ea 21
wim 0:12207c70f4ea 22 #define D_ADDR_MSK 0x3F
wim 0:12207c70f4ea 23
wim 0:12207c70f4ea 24
wim 0:12207c70f4ea 25 /** Create an PCF8574_AddressBus object connected to the specified I2C object and using the specified deviceAddress
wim 0:12207c70f4ea 26 *
wim 0:12207c70f4ea 27 * @param I2C &i2c the I2C port to connect to
wim 0:12207c70f4ea 28 * @param char deviceAddress the address of the PCF8574
wim 0:12207c70f4ea 29 */
wim 0:12207c70f4ea 30 class PCF8574_AddressBus {
wim 0:12207c70f4ea 31 public:
wim 0:12207c70f4ea 32 PCF8574_AddressBus(I2C &i2c, char deviceAddress);
wim 0:12207c70f4ea 33 void write(char address);
wim 0:12207c70f4ea 34 protected:
wim 0:12207c70f4ea 35 I2C &_i2c;
wim 0:12207c70f4ea 36 char _readOpcode;
wim 0:12207c70f4ea 37 char _writeOpcode;
wim 0:12207c70f4ea 38 void _init();
wim 0:12207c70f4ea 39 };
wim 0:12207c70f4ea 40
wim 0:12207c70f4ea 41 #endif