Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
PCA9535.cpp
00001 #include "PCA9535.h" 00002 00003 extern Serial dbg; 00004 00005 PCA9535::PCA9535(PinName sda, PinName scl):i2c(sda, scl) 00006 { 00007 i2c.frequency(PCA9535_FREQ); 00008 } 00009 00010 PCA9535::~PCA9535() 00011 { 00012 00013 } 00014 00015 bool PCA9535::configure(char pin1, char pin2) 00016 { 00017 char data1 = pin1; 00018 char data2 = pin2; 00019 00020 char buffer[3]; 00021 00022 buffer[0] = 0x06; 00023 buffer[1] = data1; 00024 buffer[2] = data2; 00025 00026 dbg.printf("%.2X %.2X %.2X\r\n", buffer[0], buffer[1], buffer[2]); 00027 if(i2c.write(ADDR, buffer, 3) != 0)return 0; 00028 00029 return 1; 00030 } 00031 00032 bool PCA9535::write(char pin1, char pin2) 00033 { 00034 char buffer[3]; 00035 buffer[0] = 0x02; 00036 buffer[1] = pin1; 00037 buffer[2] = pin2; 00038 00039 dbg.printf("%.2X %.2X %.2X\r\n", buffer[0], buffer[1], buffer[2]); 00040 if(i2c.write(ADDR, buffer, 3) != 0)return 0; 00041 00042 return 1; 00043 } 00044 00045 int PCA9535::read() 00046 { 00047 char start = 0x00; 00048 char buffer[2]; 00049 00050 if(i2c.write(ADDR, &start, 1) != 0)return 0; 00051 if(i2c.read(ADDR, buffer, 2) != 0)return 0; 00052 00053 int val = (int) (buffer[0] * 256) + buffer[1]; 00054 00055 return val; 00056 }
Generated on Tue Jul 19 2022 04:45:33 by
1.7.2