BERTL Taster, Forward, Reverse, I²C, Martin Winkler

Dependencies:   mbed

Committer:
winkler_martin
Date:
Mon Jun 15 18:27:29 2015 +0000
Revision:
0:b1af0438774e
BERTL Taster: forward, reverse, I?C

Who changed what in which revision?

UserRevisionLine numberNew contents of line
winkler_martin 0:b1af0438774e 1 #include "mbed.h"
winkler_martin 0:b1af0438774e 2
winkler_martin 0:b1af0438774e 3 I2C i2c(p28, p27);
winkler_martin 0:b1af0438774e 4
winkler_martin 0:b1af0438774e 5 DigitalOut MotorL(P1_15);
winkler_martin 0:b1af0438774e 6 DigitalOut MotorLf(P1_1);
winkler_martin 0:b1af0438774e 7 DigitalOut MotorLr(P1_0);
winkler_martin 0:b1af0438774e 8
winkler_martin 0:b1af0438774e 9 DigitalOut MotorR(P0_21);
winkler_martin 0:b1af0438774e 10 DigitalOut MotorRf(P1_3);
winkler_martin 0:b1af0438774e 11 DigitalOut MotorRr(P1_4);
winkler_martin 0:b1af0438774e 12
winkler_martin 0:b1af0438774e 13 DigitalOut Blau(P1_28);
winkler_martin 0:b1af0438774e 14
winkler_martin 0:b1af0438774e 15 int taster = 0;
winkler_martin 0:b1af0438774e 16
winkler_martin 0:b1af0438774e 17 int main() {
winkler_martin 0:b1af0438774e 18
winkler_martin 0:b1af0438774e 19 Blau = 0;
winkler_martin 0:b1af0438774e 20 MotorL = MotorR = 1;
winkler_martin 0:b1af0438774e 21 MotorLf = 1;
winkler_martin 0:b1af0438774e 22 MotorRf = 1;
winkler_martin 0:b1af0438774e 23
winkler_martin 0:b1af0438774e 24 i2c.start();
winkler_martin 0:b1af0438774e 25 i2c.write(0x40); // Adresse des PCA9555 = 40
winkler_martin 0:b1af0438774e 26 // das letzte Bit = 0 -> schreiben 0040 0000
winkler_martin 0:b1af0438774e 27 i2c.write(0x06); // Befehl für das IO Port 0 -> siehe SCHEMA des PCA9555
winkler_martin 0:b1af0438774e 28 i2c.write(0x00); // Schalte alle Pins des Ports als OUTPUT
winkler_martin 0:b1af0438774e 29 i2c.stop();
winkler_martin 0:b1af0438774e 30
winkler_martin 0:b1af0438774e 31 i2c.start();
winkler_martin 0:b1af0438774e 32 i2c.write(0x40); // Adresse & schreiben
winkler_martin 0:b1af0438774e 33 i2c.write(0x02); //
winkler_martin 0:b1af0438774e 34 i2c.write(~5); // schriebn auf Port 0 den INVERSEN Wert von btn
winkler_martin 0:b1af0438774e 35 i2c.stop();
winkler_martin 0:b1af0438774e 36
winkler_martin 0:b1af0438774e 37 while(1)
winkler_martin 0:b1af0438774e 38 {
winkler_martin 0:b1af0438774e 39 i2c.start();
winkler_martin 0:b1af0438774e 40 i2c.write(0x40);
winkler_martin 0:b1af0438774e 41 i2c.write(0x01);
winkler_martin 0:b1af0438774e 42
winkler_martin 0:b1af0438774e 43 i2c.start();
winkler_martin 0:b1af0438774e 44 i2c.write(0x41);
winkler_martin 0:b1af0438774e 45 taster = i2c.read(0);
winkler_martin 0:b1af0438774e 46 i2c.stop();
winkler_martin 0:b1af0438774e 47
winkler_martin 0:b1af0438774e 48 if(taster == 1 || taster == 3 || taster == 5 || taster == 7 || taster == 9 || taster == 11 || taster == 13 || taster == 15)
winkler_martin 0:b1af0438774e 49 {
winkler_martin 0:b1af0438774e 50 MotorLf = MotorRf = 0;
winkler_martin 0:b1af0438774e 51 MotorLr = MotorRr = 1;
winkler_martin 0:b1af0438774e 52 i2c.start();
winkler_martin 0:b1af0438774e 53 i2c.write(0x40); // Adresse & schreiben
winkler_martin 0:b1af0438774e 54 i2c.write(0x02); //
winkler_martin 0:b1af0438774e 55 i2c.write(~80); // schriebn auf Port 0 den INVERSEN Wert von btn
winkler_martin 0:b1af0438774e 56 i2c.stop();
winkler_martin 0:b1af0438774e 57 }
winkler_martin 0:b1af0438774e 58 else if(taster == 2 || taster == 3 || taster == 6 || taster == 7 || taster == 10 || taster == 11 || taster == 14 || taster == 15)
winkler_martin 0:b1af0438774e 59 {
winkler_martin 0:b1af0438774e 60 i2c.start();
winkler_martin 0:b1af0438774e 61 i2c.write(0x40); // Adresse & schreiben
winkler_martin 0:b1af0438774e 62 i2c.write(0x02); //
winkler_martin 0:b1af0438774e 63 i2c.write(~5); // schriebn auf Port 0 den INVERSEN Wert von btn
winkler_martin 0:b1af0438774e 64 i2c.stop();
winkler_martin 0:b1af0438774e 65 MotorLf = MotorRf = 1;
winkler_martin 0:b1af0438774e 66 MotorLr = MotorRr = 0;
winkler_martin 0:b1af0438774e 67 }
winkler_martin 0:b1af0438774e 68 else if(taster == 255)
winkler_martin 0:b1af0438774e 69 {
winkler_martin 0:b1af0438774e 70 MotorLf = MotorRf = 1;
winkler_martin 0:b1af0438774e 71 MotorLr = MotorRr = 0;
winkler_martin 0:b1af0438774e 72 }
winkler_martin 0:b1af0438774e 73 }
winkler_martin 0:b1af0438774e 74 }