Libraries and Example of mbed parallel bus using I2C port expanders
Dependencies: HDSP253X mbed PCF8574_Bus
PCF8574_EnableBus.h@2:1dab1089c332, 2011-08-20 (annotated)
- Committer:
- wim
- Date:
- Sat Aug 20 12:49:44 2011 +0000
- Revision:
- 2:1dab1089c332
First commit, testloop
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
wim |
2:1dab1089c332 | 1 | /* PCF8574_EnableBus - Use the PCF8574 I2C Port Extender for controlling the Chip Enable Bus |
wim |
2:1dab1089c332 | 2 | * Copyright (c) 2011 Wim Huiskamp |
wim |
2:1dab1089c332 | 3 | * |
wim |
2:1dab1089c332 | 4 | * Released under the MIT License: http://mbed.org/license/mit |
wim |
2:1dab1089c332 | 5 | * |
wim |
2:1dab1089c332 | 6 | * version 0.2 Initial Release |
wim |
2:1dab1089c332 | 7 | */ |
wim |
2:1dab1089c332 | 8 | #ifndef _PCF8574_ENABLEBUS_H |
wim |
2:1dab1089c332 | 9 | #define _PCF8574_ENABLEBUS_H |
wim |
2:1dab1089c332 | 10 | |
wim |
2:1dab1089c332 | 11 | //Pin Defines for PCF8574 Enable Bus |
wim |
2:1dab1089c332 | 12 | //Note: 'Reset' causes all devices on the 'Control & Display Unit' to be reset! |
wim |
2:1dab1089c332 | 13 | #define D_CS_SWITCH 0x01 |
wim |
2:1dab1089c332 | 14 | #define D_LATCHEN_1 0x02 |
wim |
2:1dab1089c332 | 15 | #define D_LATCHEN_2 0x04 |
wim |
2:1dab1089c332 | 16 | #define D_CS_BRIGHT 0x08 |
wim |
2:1dab1089c332 | 17 | #define D_CS_DISP 0x10 |
wim |
2:1dab1089c332 | 18 | #define D_CS_SPARE 0x20 |
wim |
2:1dab1089c332 | 19 | #define D_RESET 0x40 |
wim |
2:1dab1089c332 | 20 | #define D_NOGO 0x80 |
wim |
2:1dab1089c332 | 21 | |
wim |
2:1dab1089c332 | 22 | #define D_ENABLE_MSK 0x3F |
wim |
2:1dab1089c332 | 23 | |
wim |
2:1dab1089c332 | 24 | //Enums for Enable Bus |
wim |
2:1dab1089c332 | 25 | #include "BusEnums.h" |
wim |
2:1dab1089c332 | 26 | enum CS_Pin { CS_SWITCH, LATCHEN_1, LATCHEN_2, CS_BRIGHT, CS_DISP, CS_SPARE }; |
wim |
2:1dab1089c332 | 27 | |
wim |
2:1dab1089c332 | 28 | |
wim |
2:1dab1089c332 | 29 | /** Create an PCF8574_EnableBus object connected to the specified I2C object and using the specified deviceAddress |
wim |
2:1dab1089c332 | 30 | * |
wim |
2:1dab1089c332 | 31 | * @param I2C &i2c the I2C port to connect to |
wim |
2:1dab1089c332 | 32 | * @param char deviceAddress the address of the PCF8574 |
wim |
2:1dab1089c332 | 33 | */ |
wim |
2:1dab1089c332 | 34 | class PCF8574_EnableBus { |
wim |
2:1dab1089c332 | 35 | public: |
wim |
2:1dab1089c332 | 36 | PCF8574_EnableBus(I2C &i2c, char deviceAddress); |
wim |
2:1dab1089c332 | 37 | void chipselect (CS_Pin cs_pin, Bit_Level cs_level); |
wim |
2:1dab1089c332 | 38 | void reset (Bit_Level rst_level); |
wim |
2:1dab1089c332 | 39 | void nogo (Bit_Level nogo_level); |
wim |
2:1dab1089c332 | 40 | protected: |
wim |
2:1dab1089c332 | 41 | I2C &_i2c; |
wim |
2:1dab1089c332 | 42 | char _readOpcode; |
wim |
2:1dab1089c332 | 43 | char _writeOpcode; |
wim |
2:1dab1089c332 | 44 | char _enable_bus; |
wim |
2:1dab1089c332 | 45 | char _reset_pin; |
wim |
2:1dab1089c332 | 46 | char _nogo_pin; |
wim |
2:1dab1089c332 | 47 | // char _read(); |
wim |
2:1dab1089c332 | 48 | void _write(); |
wim |
2:1dab1089c332 | 49 | void _write(char byte); |
wim |
2:1dab1089c332 | 50 | void _init(); |
wim |
2:1dab1089c332 | 51 | }; |
wim |
2:1dab1089c332 | 52 | |
wim |
2:1dab1089c332 | 53 | #endif |