BERTL16 Line Test

Dependencies:   mbed

Revision:
1:d646fe79bc6c
Parent:
0:a8a0195ed7dc
Child:
2:90c675f0505a
diff -r a8a0195ed7dc -r d646fe79bc6c main.cpp
--- a/main.cpp	Mon Jan 26 21:46:32 2015 +0000
+++ b/main.cpp	Sun May 31 16:34:40 2015 +0000
@@ -1,15 +1,26 @@
 /***********************************
-name:   BERTL14_I2C_TEST
-author: Enenkel modifizert von  Wolfgang Raimann
+name:   BERTL15_LINE SENSOR_TEST
+author: Enenkel 
 description:
     Die Taster vom I2C Expander werden direkt auf die LED's des Expander geschalten
 ***********************************/
- 
 #include "mbed.h"
+
+DigitalOut Von (P1_2);    // Motor Spannung ON 
+DigitalOut LineON (P1_16);// Line Sensor aktivieren
+DigitalIn OSI1 (P0_14);   // OSI1
+DigitalIn OSI2 (P0_12);
+DigitalIn OSI3 (P0_16);
+DigitalIn OSI4 (P0_13);
+DigitalIn OSI5 (P0_22);   // OSI5
 I2C i2c(p28, p27);        // die Adressen des I2C Busses am uP 
                           // p28 -> SDA
                           // p27 -> SCL 
+                        
+char anzeige;                          
+                          
 int main() {
+    anzeige = 0x00;       // Anzeige der LED's 
     char btn = 0;
     //     ****  Config PCA9555 I0 as output *******
     i2c.start();
@@ -20,24 +31,46 @@
     i2c.stop();    
     
     while(1) {
+        anzeige = 0x00;        // Anzeige LED'y auf 0 setzen
         // Einlesen der Taster und speichern unter btn
         i2c.start();
-                            /* Das letzte Bit der Adresse entscheidet 
+                               /* 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.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.write(0x41);     // Adresse & LESEN    0100 0001  
+          btn = i2c.read(0);   // Einlesen des Ports 1 und speichern unter btn
         i2c.stop();
-        
+        // Auswertung der LINE SENSOREN
+        if (OSI1 == 1 )        // Line Sensor ganz LINKS
+           {
+              anzeige = anzeige & 0x80; 
+           }          
+        if (OSI2 == 1)         // Line Sensor LINKS
+           {
+              anzeige = anzeige & 0x40; 
+           }                 
+        if (OSI3 == 1)         // Line Sensor RECHTS
+           {
+              anzeige = anzeige & 0x20;
+           }
+        if (OSI4 == 1)         // Line Sensor ganz RECHT
+           {
+              anzeige = anzeige & 0x08;    
+           }   
+        if (OSI5 == 1)         // Line Sensor MITTE
+           {
+              anzeige = anzeige & 0x40;    
+           }  
+           
         // 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.write(0x40);      // Adresse & schreiben
+          i2c.write(0x02);      // 
+          i2c.write(~anzeige);  // schriebn auf Port 0 den INVERSEN Wert von btn
         i2c.stop();
     }
 }