Martin Winkler
/
BERTLTaster
BERTL Taster, Forward, Reverse, I²C, Martin Winkler
main.cpp
- Committer:
- winkler_martin
- Date:
- 2015-06-15
- Revision:
- 0:b1af0438774e
File content as of revision 0:b1af0438774e:
#include "mbed.h" I2C i2c(p28, p27); DigitalOut MotorL(P1_15); DigitalOut MotorLf(P1_1); DigitalOut MotorLr(P1_0); DigitalOut MotorR(P0_21); DigitalOut MotorRf(P1_3); DigitalOut MotorRr(P1_4); DigitalOut Blau(P1_28); int taster = 0; int main() { Blau = 0; MotorL = MotorR = 1; MotorLf = 1; MotorRf = 1; 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(); i2c.start(); i2c.write(0x40); // Adresse & schreiben i2c.write(0x02); // i2c.write(~5); // schriebn auf Port 0 den INVERSEN Wert von btn i2c.stop(); while(1) { i2c.start(); i2c.write(0x40); i2c.write(0x01); i2c.start(); i2c.write(0x41); taster = i2c.read(0); i2c.stop(); if(taster == 1 || taster == 3 || taster == 5 || taster == 7 || taster == 9 || taster == 11 || taster == 13 || taster == 15) { MotorLf = MotorRf = 0; MotorLr = MotorRr = 1; i2c.start(); i2c.write(0x40); // Adresse & schreiben i2c.write(0x02); // i2c.write(~80); // schriebn auf Port 0 den INVERSEN Wert von btn i2c.stop(); } else if(taster == 2 || taster == 3 || taster == 6 || taster == 7 || taster == 10 || taster == 11 || taster == 14 || taster == 15) { i2c.start(); i2c.write(0x40); // Adresse & schreiben i2c.write(0x02); // i2c.write(~5); // schriebn auf Port 0 den INVERSEN Wert von btn i2c.stop(); MotorLf = MotorRf = 1; MotorLr = MotorRr = 0; } else if(taster == 255) { MotorLf = MotorRf = 1; MotorLr = MotorRr = 0; } } }