Testet BERTL17 zuerst die LED's dann nach Tasterdruck jeweils die dazugehörigen LED
Dependencies: mbed
main.cpp
- Committer:
- Enenkel
- Date:
- 2015-01-26
- Revision:
- 0:a8a0195ed7dc
- Child:
- 1:628da1b465a4
File content as of revision 0:a8a0195ed7dc:
/*********************************** name: BERTL14_I2C_TEST author: Enenkel modifizert von Wolfgang Raimann description: Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten ***********************************/ #include "mbed.h" I2C i2c(p28, p27); // die Adressen des I2C Busses am uP // p28 -> SDA // p27 -> SCL int main() { char btn = 0; // **** Config PCA9555 I0 as output ******* i2c.start(); i2c.write(0x40); // Adresse des PCA9555 = 40 // das letzte Bit = 0 -> schreiben 0040 0000 i2c.write(0x06); // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555 i2c.write(0x00); // Schalte alle Pins des Ports als OUTPUT i2c.stop(); while(1) { // Einlesen der Taster und speichern unter btn i2c.start(); /* Das letzte Bit der Adresse entscheidet ob geschrieben oder gelesen wird. 0 => schreiben; 1 => lesen */ i2c.write(0x40); //Adresse & schreiben 0100 0000 i2c.write(0x01); //aktivate Port 1 i2c.start(); i2c.write(0x41); // Adresse & LESEN 0100 0001 btn = i2c.read(0);// Einlesen des Ports 1 und speichern unter btn i2c.stop(); // Schreiben auf Port 0 und damit auf die LED's i2c.start(); i2c.write(0x40); // Adresse & schreiben i2c.write(0x02); // i2c.write(~btn); // schriebn auf Port 0 den INVERSEN Wert von btn i2c.stop(); } }