PCA9555

Dependents:   Telliskivi2_2014 PowerManagementBoard_Rev_A_2017

Committer:
Reiko
Date:
Sat Aug 31 15:57:14 2013 +0000
Revision:
1:a6699cd826bb
Parent:
0:011622696878
Child:
2:fae93e0841f6
Added IO direction changing, changed read and write methods to send correct data, added methods for changing individual pins

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Reiko 0:011622696878 1 #include "mbed.h"
Reiko 0:011622696878 2
Reiko 0:011622696878 3 #ifndef MBED_PCA9555_H
Reiko 0:011622696878 4 #define MBED_PCA9555_H
Reiko 0:011622696878 5
Reiko 0:011622696878 6 /** Interface to the PCA9555 I2C 16 Bit IO expander */
Reiko 0:011622696878 7 class PCA9555 {
Reiko 0:011622696878 8 public:
Reiko 0:011622696878 9 /** Create an instance of the PCA9555 connected to specfied I2C pins, with the specified address.
Reiko 0:011622696878 10 *
Reiko 0:011622696878 11 * @param sda The I2C data pin
Reiko 0:011622696878 12 * @param scl The I2C clock pin
Reiko 0:011622696878 13 * @param address The I2C address for this PCA9555
Reiko 0:011622696878 14 */
Reiko 0:011622696878 15 PCA9555(PinName sda, PinName scl, int address);
Reiko 0:011622696878 16
Reiko 0:011622696878 17 /** Read the IO pin level
Reiko 0:011622696878 18 *
Reiko 0:011622696878 19 * @return The two bytes read
Reiko 0:011622696878 20 */
Reiko 0:011622696878 21 int read();
Reiko 0:011622696878 22
Reiko 0:011622696878 23 /** Write to the IO pins
Reiko 0:011622696878 24 *
Reiko 0:011622696878 25 * @param data The 16 bits to write to the IO port
Reiko 0:011622696878 26 */
Reiko 0:011622696878 27 void write(int data);
Reiko 1:a6699cd826bb 28
Reiko 1:a6699cd826bb 29 void setPin(unsigned int pinNumber);
Reiko 1:a6699cd826bb 30 void clearPin(unsigned int pinNumber);
Reiko 1:a6699cd826bb 31 void togglePin(unsigned int pinNumber);
Reiko 1:a6699cd826bb 32
Reiko 1:a6699cd826bb 33 void setDirection(int data);
Reiko 0:011622696878 34
Reiko 0:011622696878 35 private:
Reiko 0:011622696878 36 I2C _i2c;
Reiko 0:011622696878 37 int _address;
Reiko 1:a6699cd826bb 38 int currentWriteState;
Reiko 0:011622696878 39 };
Reiko 0:011622696878 40
Reiko 0:011622696878 41 #endif