LIB Bertl 2041

Fork of I2C_LEDs by Matthias Hemmer

Committer:
Drohne
Date:
Sun Apr 24 08:29:05 2016 +0000
Revision:
1:97a7e9e9a229
Bulme bertl 14 lib

Who changed what in which revision?

UserRevisionLine numberNew contents of line
Drohne 1:97a7e9e9a229 1 #include "mbed.h"
Drohne 1:97a7e9e9a229 2 #include "Enginee-PWM.h"
Drohne 1:97a7e9e9a229 3
Drohne 1:97a7e9e9a229 4 // decleration for left engine
Drohne 1:97a7e9e9a229 5 PwmOut MotorL_EN(P1_15);
Drohne 1:97a7e9e9a229 6 DigitalOut MotorL_FORWARD(P1_1);
Drohne 1:97a7e9e9a229 7 DigitalOut MotorL_REVERSE(P1_0);
Drohne 1:97a7e9e9a229 8
Drohne 1:97a7e9e9a229 9 // decleration for right engine
Drohne 1:97a7e9e9a229 10 PwmOut MotorR_EN(P0_21);
Drohne 1:97a7e9e9a229 11 DigitalOut MotorR_FORWARD(P1_3);
Drohne 1:97a7e9e9a229 12 DigitalOut MotorR_REVERSE(P1_4);
Drohne 1:97a7e9e9a229 13
Drohne 1:97a7e9e9a229 14 void period_us(int periode) // underprogramm fot the periode
Drohne 1:97a7e9e9a229 15 {
Drohne 1:97a7e9e9a229 16 MotorL_EN.period_us(periode); // declaration for the Periode of the left egngine
Drohne 1:97a7e9e9a229 17 MotorR_EN.period_us(periode); // declaration for the Periode of the right egngine
Drohne 1:97a7e9e9a229 18 }
Drohne 1:97a7e9e9a229 19
Drohne 1:97a7e9e9a229 20 void bertl_engine(int left, int right)
Drohne 1:97a7e9e9a229 21 {
Drohne 1:97a7e9e9a229 22 int index_Engine = 0; // agrument for the Switch
Drohne 1:97a7e9e9a229 23
Drohne 1:97a7e9e9a229 24 // decleration for left and right engine
Drohne 1:97a7e9e9a229 25 if (left > 0 && right > 0) // all arguments are positive
Drohne 1:97a7e9e9a229 26 index_Engine = 1;
Drohne 1:97a7e9e9a229 27
Drohne 1:97a7e9e9a229 28 else if (left < 0 && right > 0) // left argument is negative and right is positive
Drohne 1:97a7e9e9a229 29 index_Engine = 2;
Drohne 1:97a7e9e9a229 30
Drohne 1:97a7e9e9a229 31 else if (left > 0 && right < 0) // left argument is positive and right is negative
Drohne 1:97a7e9e9a229 32 index_Engine = 3;
Drohne 1:97a7e9e9a229 33
Drohne 1:97a7e9e9a229 34 else if (left < 0 && right < 0) // left argument is negative and right is negative
Drohne 1:97a7e9e9a229 35 index_Engine = 4;
Drohne 1:97a7e9e9a229 36
Drohne 1:97a7e9e9a229 37 else if (left == 0 && right < 0) // left argument is zero and right is negative
Drohne 1:97a7e9e9a229 38 index_Engine = 5;
Drohne 1:97a7e9e9a229 39
Drohne 1:97a7e9e9a229 40 else if (left == 0 && right > 0) // left argument is zero and right is positive
Drohne 1:97a7e9e9a229 41 index_Engine = 6;
Drohne 1:97a7e9e9a229 42
Drohne 1:97a7e9e9a229 43 else if (left < 0 && right == 0) // left argument is negative and right is is zero
Drohne 1:97a7e9e9a229 44 index_Engine = 7;
Drohne 1:97a7e9e9a229 45
Drohne 1:97a7e9e9a229 46 else if (left > 0 && right == 0) // left argument is positive and right is is zero
Drohne 1:97a7e9e9a229 47 index_Engine = 8;
Drohne 1:97a7e9e9a229 48 else // all egines are zero
Drohne 1:97a7e9e9a229 49 index_Engine = 9;
Drohne 1:97a7e9e9a229 50
Drohne 1:97a7e9e9a229 51 switch (index_Engine) //begin Switch
Drohne 1:97a7e9e9a229 52 {
Drohne 1:97a7e9e9a229 53 case 1:
Drohne 1:97a7e9e9a229 54 MotorR_EN.pulsewidth_us(right); // to declratate the speed of the right engine (-us - +us)
Drohne 1:97a7e9e9a229 55 MotorL_EN.pulsewidth_us(left); // to declratate the speed of the left engine (-us - +us)
Drohne 1:97a7e9e9a229 56 MotorL_REVERSE = 0;
Drohne 1:97a7e9e9a229 57 MotorR_REVERSE = 0;
Drohne 1:97a7e9e9a229 58 MotorL_FORWARD = 1;
Drohne 1:97a7e9e9a229 59 MotorR_FORWARD = 1;
Drohne 1:97a7e9e9a229 60
Drohne 1:97a7e9e9a229 61 break;
Drohne 1:97a7e9e9a229 62
Drohne 1:97a7e9e9a229 63 case 2:
Drohne 1:97a7e9e9a229 64 MotorR_EN.pulsewidth_us(right);
Drohne 1:97a7e9e9a229 65 MotorL_EN.pulsewidth_us(-left);
Drohne 1:97a7e9e9a229 66 MotorL_FORWARD = 0;
Drohne 1:97a7e9e9a229 67 MotorR_REVERSE = 0;
Drohne 1:97a7e9e9a229 68 MotorL_REVERSE = 1;
Drohne 1:97a7e9e9a229 69 MotorR_FORWARD = 1;
Drohne 1:97a7e9e9a229 70 break;
Drohne 1:97a7e9e9a229 71
Drohne 1:97a7e9e9a229 72 case 3:
Drohne 1:97a7e9e9a229 73 MotorR_EN.pulsewidth_us(-right);
Drohne 1:97a7e9e9a229 74 MotorL_EN.pulsewidth_us(left);
Drohne 1:97a7e9e9a229 75 MotorL_REVERSE = 0;
Drohne 1:97a7e9e9a229 76 MotorR_FORWARD = 0;
Drohne 1:97a7e9e9a229 77 MotorL_FORWARD = 1;
Drohne 1:97a7e9e9a229 78 MotorR_REVERSE = 1;
Drohne 1:97a7e9e9a229 79 break;
Drohne 1:97a7e9e9a229 80
Drohne 1:97a7e9e9a229 81 case 4:
Drohne 1:97a7e9e9a229 82 MotorR_EN.pulsewidth_us(-right);
Drohne 1:97a7e9e9a229 83 MotorL_EN.pulsewidth_us(-left);
Drohne 1:97a7e9e9a229 84 MotorL_FORWARD = 0;
Drohne 1:97a7e9e9a229 85 MotorR_FORWARD = 0;
Drohne 1:97a7e9e9a229 86 MotorL_REVERSE = 1;
Drohne 1:97a7e9e9a229 87 MotorR_REVERSE = 1;
Drohne 1:97a7e9e9a229 88 break;
Drohne 1:97a7e9e9a229 89
Drohne 1:97a7e9e9a229 90 case 5:
Drohne 1:97a7e9e9a229 91 MotorL_EN = 0;
Drohne 1:97a7e9e9a229 92 MotorR_EN.pulsewidth_us(-right);
Drohne 1:97a7e9e9a229 93 MotorR_FORWARD = 0;
Drohne 1:97a7e9e9a229 94 MotorR_REVERSE = 1;
Drohne 1:97a7e9e9a229 95 break;
Drohne 1:97a7e9e9a229 96
Drohne 1:97a7e9e9a229 97 case 6:
Drohne 1:97a7e9e9a229 98 MotorL_EN = 0;
Drohne 1:97a7e9e9a229 99 MotorR_EN.pulsewidth_us(right);
Drohne 1:97a7e9e9a229 100 MotorR_REVERSE = 0;
Drohne 1:97a7e9e9a229 101 MotorR_FORWARD = 1;
Drohne 1:97a7e9e9a229 102 break;
Drohne 1:97a7e9e9a229 103
Drohne 1:97a7e9e9a229 104 case 7:
Drohne 1:97a7e9e9a229 105 MotorR_EN = 0;
Drohne 1:97a7e9e9a229 106 MotorL_EN.pulsewidth_us(-left);
Drohne 1:97a7e9e9a229 107 MotorL_FORWARD = 0;
Drohne 1:97a7e9e9a229 108 MotorL_REVERSE = 1;
Drohne 1:97a7e9e9a229 109 break;
Drohne 1:97a7e9e9a229 110
Drohne 1:97a7e9e9a229 111 case 8:
Drohne 1:97a7e9e9a229 112 MotorR_EN = 0;
Drohne 1:97a7e9e9a229 113 MotorL_EN.pulsewidth_us(left);
Drohne 1:97a7e9e9a229 114 MotorL_REVERSE = 0;
Drohne 1:97a7e9e9a229 115 MotorL_FORWARD = 1;
Drohne 1:97a7e9e9a229 116 break;
Drohne 1:97a7e9e9a229 117
Drohne 1:97a7e9e9a229 118 case 9:
Drohne 1:97a7e9e9a229 119 MotorR_EN = 0;
Drohne 1:97a7e9e9a229 120 MotorL_EN = 0;
Drohne 1:97a7e9e9a229 121 break;
Drohne 1:97a7e9e9a229 122 }//end Switch
Drohne 1:97a7e9e9a229 123 }//end bertl_engine