Gottfried Enenkel
/
_B16_T4_Line
BERTL16 Line Test
Diff: main.cpp
- Revision:
- 2:90c675f0505a
- Parent:
- 1:d646fe79bc6c
- Child:
- 3:5c3f86316047
diff -r d646fe79bc6c -r 90c675f0505a main.cpp --- a/main.cpp Sun May 31 16:34:40 2015 +0000 +++ b/main.cpp Mon Jun 08 13:23:44 2015 +0000 @@ -6,72 +6,56 @@ ***********************************/ #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; - +DigitalOut Von (P1_2); // Motor Spannung ON +DigitalOut LineON (P1_6); // Line Sensor aktivieren +DigitalIn ISO1 (P0_14); // ISO1 +DigitalIn ISO2 (P0_12); +DigitalIn ISO3 (P0_16); +DigitalIn ISO4 (P0_13); +DigitalIn ISO5 (P0_22); // OSI5 +DigitalOut LedD10 (P1_8); // Led D10 +DigitalOut LedD11 (P1_9); +DigitalOut LedD12 (P1_10); +DigitalOut LedD13 (P1_11); +DigitalOut LedBlue (P1_28); // Unterboden LED blau + + int main() { - anzeige = 0x00; // Anzeige der LED's - 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(); - + Von=1; // 12 V leitung EIN + LineON=1; // Line Sensoren AKTIV + 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 - 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(); // Auswertung der LINE SENSOREN - if (OSI1 == 1 ) // Line Sensor ganz LINKS + if (ISO1 == 1 ) // Line Sensor ganz LINKS { - anzeige = anzeige & 0x80; - } - if (OSI2 == 1) // Line Sensor LINKS + LedD10=1; // Mit dem FINGER LED's einzeln abdunkeln! + } else{ + LedD10=0; + } + if (ISO2 == 1) // Line Sensor LINKS + { + LedD11=1; + } else { + LedD11=0; + } + if (ISO3 == 1) // Line Sensor RECHTS { - anzeige = anzeige & 0x40; - } - if (OSI3 == 1) // Line Sensor RECHTS - { - anzeige = anzeige & 0x20; - } - if (OSI4 == 1) // Line Sensor ganz RECHT + LedD12=1; + } else { + LedD12=0; + } + if (ISO4 == 1) // Line Sensor ganz RECHT { - anzeige = anzeige & 0x08; - } - if (OSI5 == 1) // Line Sensor MITTE + LedD13=1; + } else{ + LedD13=0; + } + if (ISO5 == 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(~anzeige); // schriebn auf Port 0 den INVERSEN Wert von btn - i2c.stop(); + LedBlue=0; + } else { + LedBlue=1; + } } }