Matthias Praja / Mbed 2 deprecated All-15Final

Dependencies:   mbed

Fork of All-15 by Ladner-Praja

Committer:
ladner
Date:
Tue Jul 07 21:51:30 2015 +0000
Revision:
10:389c1c4c1f2b
Parent:
9:b627760fd5d9
Child:
11:4084ae1f1be8
Folge der Linie(2015);

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 10:389c1c4c1f2b 87 {
ladner 10:389c1c4c1f2b 88 MotorR_FORWARD = 0;
ladner 10:389c1c4c1f2b 89 MotorR_EN=0;
ladner 10:389c1c4c1f2b 90 }
ladner 9:b627760fd5d9 91 else
ladner 10:389c1c4c1f2b 92 {
ladner 10:389c1c4c1f2b 93 MotorR_FORWARD = 1;
ladner 10:389c1c4c1f2b 94 if((myline&0x02)>0)
ladner 10:389c1c4c1f2b 95 MotorR_EN=0.25;
ladner 10:389c1c4c1f2b 96 else
ladner 10:389c1c4c1f2b 97 MotorR_EN=0.5;
ladner 10:389c1c4c1f2b 98 }
ladner 9:b627760fd5d9 99
ladner 9:b627760fd5d9 100 if((myline&0x08)>0)
ladner 10:389c1c4c1f2b 101 {
ladner 10:389c1c4c1f2b 102 MotorL_EN=0;
ladner 10:389c1c4c1f2b 103 MotorL_FORWARD = 0;
ladner 10:389c1c4c1f2b 104 }
ladner 9:b627760fd5d9 105 else
ladner 10:389c1c4c1f2b 106 {
ladner 10:389c1c4c1f2b 107 MotorL_FORWARD = 0;
ladner 10:389c1c4c1f2b 108 if((myline&0x04)>0)
ladner 10:389c1c4c1f2b 109 MotorL_EN=0.25;
ladner 10:389c1c4c1f2b 110 else
ladner 10:389c1c4c1f2b 111 MotorL_EN=0.5;
ladner 10:389c1c4c1f2b 112 }
ladner 9:b627760fd5d9 113 }
ladner 3:2cd73b6f5b50 114 myrgb=3;
ladner 1:28cfac75543f 115 }
ladner 1:28cfac75543f 116 else
ladner 1:28cfac75543f 117 {
ladner 2:1317061163f8 118 if(waiting<7)
ladner 5:e968c184ad9f 119 {
ladner 5:e968c184ad9f 120 wait(0.5);
ladner 5:e968c184ad9f 121 if(waiting==0)
ladner 5:e968c184ad9f 122 {
ladner 5:e968c184ad9f 123 enable = 0;
ladner 5:e968c184ad9f 124 online = 0;
ladner 5:e968c184ad9f 125 myrgb=7;
ladner 5:e968c184ad9f 126 }
ladner 1:28cfac75543f 127 waiting++;
ladner 5:e968c184ad9f 128 }
ladner 1:28cfac75543f 129 else
ladner 1:28cfac75543f 130 {
ladner 2:1317061163f8 131 enable = 1;
ladner 2:1317061163f8 132 online = 1;
ladner 5:e968c184ad9f 133 wait(0.5);
ladner 8:c82246829dd4 134 if((myline>=1)||(linecenter==1))
ladner 2:1317061163f8 135 {
ladner 7:936bef387bbd 136 active=true;
ladner 9:b627760fd5d9 137 myrgb=5;
ladner 7:936bef387bbd 138 myled=0;
ladner 7:936bef387bbd 139 wait(0.5);
ladner 2:1317061163f8 140 }
ladner 2:1317061163f8 141 else
ladner 9:b627760fd5d9 142 myrgb=6;
ladner 2:1317061163f8 143 waiting=0;
ladner 1:28cfac75543f 144 }
ladner 9:b627760fd5d9 145 if(!active)
ladner 9:b627760fd5d9 146 myled=out_helper[waiting];
ladner 1:28cfac75543f 147 }
ladner 2:1317061163f8 148 //0=>keine Linie
ladner 0:cce97dfa8e6b 149
ladner 0:cce97dfa8e6b 150 //01->forneMitte
ladner 0:cce97dfa8e6b 151 //02->hintenMitte
ladner 0:cce97dfa8e6b 152 //04->forneLinks
ladner 0:cce97dfa8e6b 153 //08->forneRects
ladner 0:cce97dfa8e6b 154 //10->hintenLinks
ladner 0:cce97dfa8e6b 155 //20->hintenRechts
ladner 0:cce97dfa8e6b 156 //40->Rechts
ladner 0:cce97dfa8e6b 157 //80->Links
ladner 0:cce97dfa8e6b 158
ladner 0:cce97dfa8e6b 159 }
ladner 0:cce97dfa8e6b 160 }