![](/media/cache/profiles/a5e81d6359de58d27e34d607eb5bf9be.jpg.50x50_q85.png)
BERTL Taster, Forward, Reverse, I²C, Martin Winkler
main.cpp@0:b1af0438774e, 2015-06-15 (annotated)
- 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?
User | Revision | Line number | New 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 | } |