Testet BERTL17 zuerst die LED's dann nach Tasterdruck jeweils die dazugehörigen LED

Dependencies:   mbed

Revision:
0:a8a0195ed7dc
Child:
1:628da1b465a4
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/main.cpp	Mon Jan 26 21:46:32 2015 +0000
@@ -0,0 +1,44 @@
+/***********************************
+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();
+    }
+}
+