Matthias Praja / Mbed 2 deprecated All-15Final

Dependencies:   mbed

Fork of All-15 by Ladner-Praja

Committer:
ladner
Date:
Tue Jul 07 21:42:17 2015 +0000
Revision:
9:b627760fd5d9
Parent:
8:c82246829dd4
Child:
10:389c1c4c1f2b
Folge der Linie

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ladner 0:cce97dfa8e6b 1 #include "mbed.h"
ladner 0:cce97dfa8e6b 2
ladner 0:cce97dfa8e6b 3 I2C i2c(p28, p27);
ladner 0:cce97dfa8e6b 4 BusOut myled(LED1,LED2,LED3,LED4);
ladner 0:cce97dfa8e6b 5 BusOut myrgb(P1_23,P1_25,P1_24);
ladner 0:cce97dfa8e6b 6 DigitalOut LedBlue(P1_28);
ladner 0:cce97dfa8e6b 7 BusIn myline(p18,p16,p19,p17);
ladner 0:cce97dfa8e6b 8 DigitalIn linecenter(p20);
ladner 0:cce97dfa8e6b 9 DigitalOut online(P1_6);
ladner 9:b627760fd5d9 10 PwmOut MotorL_EN(P1_15);
ladner 0:cce97dfa8e6b 11 DigitalOut MotorL_FORWARD(P1_1);
ladner 0:cce97dfa8e6b 12 DigitalOut MotorL_REVERSE(P1_0);
ladner 9:b627760fd5d9 13 PwmOut MotorR_EN(P0_21);
ladner 0:cce97dfa8e6b 14 DigitalOut MotorR_FORWARD(P1_3);
ladner 0:cce97dfa8e6b 15 DigitalOut MotorR_REVERSE(P1_4);
ladner 0:cce97dfa8e6b 16 DigitalOut Motor_SENSOR(P1_7);
ladner 0:cce97dfa8e6b 17 DigitalOut enable(P1_2);
ladner 0:cce97dfa8e6b 18 DigitalIn SensorL(P1_12);
ladner 0:cce97dfa8e6b 19 DigitalIn SensorR(P1_13);
ladner 0:cce97dfa8e6b 20 int data;
ladner 2:1317061163f8 21 int out_helper[8];
ladner 0:cce97dfa8e6b 22 int main()
ladner 0:cce97dfa8e6b 23 {
ladner 2:1317061163f8 24 out_helper[0]=0;
ladner 2:1317061163f8 25 out_helper[1]=1;
ladner 2:1317061163f8 26 out_helper[2]=3;
ladner 2:1317061163f8 27 out_helper[3]=7;
ladner 2:1317061163f8 28 out_helper[4]=15;
ladner 2:1317061163f8 29 out_helper[5]=14;
ladner 2:1317061163f8 30 out_helper[6]=12;
ladner 2:1317061163f8 31 out_helper[7]=8;
ladner 2:1317061163f8 32
ladner 0:cce97dfa8e6b 33 enable = 0;
ladner 0:cce97dfa8e6b 34 online = 0;
ladner 0:cce97dfa8e6b 35 Motor_SENSOR=0;
ladner 0:cce97dfa8e6b 36
ladner 0:cce97dfa8e6b 37 myrgb = 0x07;//7->aus
ladner 0:cce97dfa8e6b 38 LedBlue=1;
ladner 0:cce97dfa8e6b 39 myled = 0x00;
ladner 0:cce97dfa8e6b 40
ladner 0:cce97dfa8e6b 41 MotorL_EN = 0;
ladner 0:cce97dfa8e6b 42 MotorL_FORWARD = 0;
ladner 0:cce97dfa8e6b 43 MotorL_REVERSE = 0;
ladner 0:cce97dfa8e6b 44 MotorR_EN = 0;
ladner 0:cce97dfa8e6b 45 MotorR_FORWARD = 0;
ladner 0:cce97dfa8e6b 46 MotorR_REVERSE = 0;
ladner 0:cce97dfa8e6b 47
ladner 0:cce97dfa8e6b 48 i2c.start();
ladner 0:cce97dfa8e6b 49 i2c.write(0x40);
ladner 0:cce97dfa8e6b 50 i2c.write(0x06);
ladner 0:cce97dfa8e6b 51 i2c.write(0x00);
ladner 0:cce97dfa8e6b 52 i2c.stop();
ladner 0:cce97dfa8e6b 53
ladner 0:cce97dfa8e6b 54 i2c.start();
ladner 0:cce97dfa8e6b 55 i2c.write(0x40);
ladner 0:cce97dfa8e6b 56 i2c.write(0x02);
ladner 0:cce97dfa8e6b 57 i2c.write(~0x00);
ladner 0:cce97dfa8e6b 58 i2c.stop();
ladner 0:cce97dfa8e6b 59
ladner 1:28cfac75543f 60 int waiting = 0;
ladner 1:28cfac75543f 61 bool active = false;
ladner 1:28cfac75543f 62
ladner 0:cce97dfa8e6b 63 while(1){
ladner 1:28cfac75543f 64 if(active)
ladner 1:28cfac75543f 65 {
ladner 1:28cfac75543f 66 enable = 1;
ladner 1:28cfac75543f 67 online = 1;
ladner 9:b627760fd5d9 68 MotorL_EN = 1;
ladner 9:b627760fd5d9 69 MotorL_FORWARD = 1;
ladner 9:b627760fd5d9 70 MotorL_REVERSE = 0;
ladner 9:b627760fd5d9 71 MotorR_EN = 1;
ladner 9:b627760fd5d9 72 MotorR_FORWARD = 1;
ladner 9:b627760fd5d9 73 MotorR_REVERSE = 0;
ladner 9:b627760fd5d9 74 if((myline==0)&&(linecenter==0))
ladner 9:b627760fd5d9 75 {
ladner 9:b627760fd5d9 76 active = false;
ladner 9:b627760fd5d9 77 MotorL_EN = 0;
ladner 9:b627760fd5d9 78 MotorL_FORWARD = 0;
ladner 9:b627760fd5d9 79 MotorL_REVERSE = 0;
ladner 9:b627760fd5d9 80 MotorR_EN = 0;
ladner 9:b627760fd5d9 81 MotorR_FORWARD = 0;
ladner 9:b627760fd5d9 82 MotorR_REVERSE = 0;
ladner 9:b627760fd5d9 83 }
ladner 9:b627760fd5d9 84 else
ladner 9:b627760fd5d9 85 {
ladner 9:b627760fd5d9 86 if((myline&0x01)>0)
ladner 9:b627760fd5d9 87 MotorR_EN=0.0;
ladner 9:b627760fd5d9 88 else if((myline&0x02)>0)
ladner 9:b627760fd5d9 89 MotorR_EN=0.25;
ladner 9:b627760fd5d9 90 else
ladner 9:b627760fd5d9 91 MotorR_EN=0.5;
ladner 9:b627760fd5d9 92
ladner 9:b627760fd5d9 93 if((myline&0x08)>0)
ladner 9:b627760fd5d9 94 MotorL_EN=0.0;
ladner 9:b627760fd5d9 95 else if((myline&0x04)>0)
ladner 9:b627760fd5d9 96 MotorL_EN=0.25;
ladner 9:b627760fd5d9 97 else
ladner 9:b627760fd5d9 98 MotorL_EN=0.5;
ladner 9:b627760fd5d9 99 }
ladner 3:2cd73b6f5b50 100 myrgb=3;
ladner 1:28cfac75543f 101 }
ladner 1:28cfac75543f 102 else
ladner 1:28cfac75543f 103 {
ladner 2:1317061163f8 104 if(waiting<7)
ladner 5:e968c184ad9f 105 {
ladner 5:e968c184ad9f 106 wait(0.5);
ladner 5:e968c184ad9f 107 if(waiting==0)
ladner 5:e968c184ad9f 108 {
ladner 5:e968c184ad9f 109 enable = 0;
ladner 5:e968c184ad9f 110 online = 0;
ladner 5:e968c184ad9f 111 myrgb=7;
ladner 5:e968c184ad9f 112 }
ladner 1:28cfac75543f 113 waiting++;
ladner 5:e968c184ad9f 114 }
ladner 1:28cfac75543f 115 else
ladner 1:28cfac75543f 116 {
ladner 2:1317061163f8 117 enable = 1;
ladner 2:1317061163f8 118 online = 1;
ladner 5:e968c184ad9f 119 wait(0.5);
ladner 8:c82246829dd4 120 if((myline>=1)||(linecenter==1))
ladner 2:1317061163f8 121 {
ladner 7:936bef387bbd 122 active=true;
ladner 9:b627760fd5d9 123 myrgb=5;
ladner 7:936bef387bbd 124 myled=0;
ladner 7:936bef387bbd 125 wait(0.5);
ladner 2:1317061163f8 126 }
ladner 2:1317061163f8 127 else
ladner 9:b627760fd5d9 128 myrgb=6;
ladner 2:1317061163f8 129 waiting=0;
ladner 1:28cfac75543f 130 }
ladner 9:b627760fd5d9 131 if(!active)
ladner 9:b627760fd5d9 132 myled=out_helper[waiting];
ladner 1:28cfac75543f 133 }
ladner 2:1317061163f8 134 //0=>keine Linie
ladner 0:cce97dfa8e6b 135
ladner 0:cce97dfa8e6b 136 //01->forneMitte
ladner 0:cce97dfa8e6b 137 //02->hintenMitte
ladner 0:cce97dfa8e6b 138 //04->forneLinks
ladner 0:cce97dfa8e6b 139 //08->forneRects
ladner 0:cce97dfa8e6b 140 //10->hintenLinks
ladner 0:cce97dfa8e6b 141 //20->hintenRechts
ladner 0:cce97dfa8e6b 142 //40->Rechts
ladner 0:cce97dfa8e6b 143 //80->Links
ladner 0:cce97dfa8e6b 144
ladner 0:cce97dfa8e6b 145 }
ladner 0:cce97dfa8e6b 146 }