Damian Herman / Mbed 2 deprecated NetrunnerMain

Dependencies:   mbed

Committer:
overkiller
Date:
Sat Aug 15 11:47:53 2015 +0000
Revision:
6:9eb153e1d472
Parent:
5:1afe17a20a5b
bugfix

Who changed what in which revision?

UserRevisionLine numberNew contents of line
overkiller 1:90d75436758b 1 #ifndef DRIVER_H
overkiller 1:90d75436758b 2 #define DRIVER_H
overkiller 1:90d75436758b 3 #include "mbed.h"
overkiller 4:cc391b3f3e57 4 #include "SerialPrompt.h"
overkiller 1:90d75436758b 5 DigitalOut en1(D2);
overkiller 1:90d75436758b 6 DigitalOut en2(D4);
overkiller 1:90d75436758b 7 DigitalOut in1(D3);
overkiller 1:90d75436758b 8 DigitalOut in2(D5);
overkiller 1:90d75436758b 9 DigitalOut in3(D6);
overkiller 5:1afe17a20a5b 10 DigitalOut in4(D7);
overkiller 6:9eb153e1d472 11 DigitalIn enableAllButton(USER_BUTTON);
overkiller 2:09cc6b203fe4 12 int inState[4] = {0,0,0,0};
overkiller 6:9eb153e1d472 13 bool canDrive = true;
overkiller 6:9eb153e1d472 14 int buttonClicks = 0;
overkiller 2:09cc6b203fe4 15 void applyStates()
overkiller 2:09cc6b203fe4 16 {
overkiller 6:9eb153e1d472 17 in1 = inState[0];
overkiller 6:9eb153e1d472 18 in2 = inState[1];
overkiller 6:9eb153e1d472 19 in3 = inState[2];
overkiller 6:9eb153e1d472 20 in4 = inState[3];
overkiller 2:09cc6b203fe4 21 }
overkiller 2:09cc6b203fe4 22 void resetEngines()
overkiller 2:09cc6b203fe4 23 {
overkiller 2:09cc6b203fe4 24 for(int i = 0; i < 4; ++i)
overkiller 2:09cc6b203fe4 25 {
overkiller 2:09cc6b203fe4 26 inState[i] = 0;
overkiller 2:09cc6b203fe4 27 }
overkiller 2:09cc6b203fe4 28 applyStates();
overkiller 2:09cc6b203fe4 29 }
overkiller 5:1afe17a20a5b 30 void forward()
overkiller 5:1afe17a20a5b 31 {
overkiller 5:1afe17a20a5b 32 resetEngines();
overkiller 5:1afe17a20a5b 33 inState[0] = 0;
overkiller 5:1afe17a20a5b 34 inState[1] = 1;
overkiller 5:1afe17a20a5b 35 inState[2] = 0;
overkiller 5:1afe17a20a5b 36 inState[3] = 1;
overkiller 5:1afe17a20a5b 37 applyStates();
overkiller 5:1afe17a20a5b 38 }
overkiller 1:90d75436758b 39 void testEngines()
overkiller 1:90d75436758b 40 {
overkiller 2:09cc6b203fe4 41 int i = 0;
overkiller 2:09cc6b203fe4 42 while(i < 4)
overkiller 2:09cc6b203fe4 43 {
overkiller 2:09cc6b203fe4 44 if(i % 2 == 0)
overkiller 2:09cc6b203fe4 45 {
overkiller 2:09cc6b203fe4 46 inState[i] = 1;
overkiller 2:09cc6b203fe4 47 }
overkiller 2:09cc6b203fe4 48 i++;
overkiller 2:09cc6b203fe4 49 }
overkiller 2:09cc6b203fe4 50 applyStates();
overkiller 2:09cc6b203fe4 51 wait(5);
overkiller 2:09cc6b203fe4 52 resetEngines();
overkiller 2:09cc6b203fe4 53 int j = 0;
overkiller 2:09cc6b203fe4 54 while(j < 4)
overkiller 2:09cc6b203fe4 55 {
overkiller 2:09cc6b203fe4 56 if(j % 2 != 0)
overkiller 2:09cc6b203fe4 57 {
overkiller 2:09cc6b203fe4 58 inState[j] = 1;
overkiller 2:09cc6b203fe4 59 }
overkiller 2:09cc6b203fe4 60 j++;
overkiller 2:09cc6b203fe4 61 }
overkiller 2:09cc6b203fe4 62 applyStates();
overkiller 2:09cc6b203fe4 63 wait(5);
overkiller 2:09cc6b203fe4 64 resetEngines();
overkiller 1:90d75436758b 65 }
overkiller 6:9eb153e1d472 66 void checkEnableButtonState()
overkiller 6:9eb153e1d472 67 {
overkiller 6:9eb153e1d472 68 if(enableAllButton == 0)
overkiller 6:9eb153e1d472 69 {
overkiller 6:9eb153e1d472 70 buttonClicks++;
overkiller 6:9eb153e1d472 71 while(enableAllButton == 0);
overkiller 6:9eb153e1d472 72 return;
overkiller 6:9eb153e1d472 73 }
overkiller 6:9eb153e1d472 74 if(buttonClicks == 1)
overkiller 6:9eb153e1d472 75 {
overkiller 6:9eb153e1d472 76 canDrive = false;
overkiller 6:9eb153e1d472 77 resetEngines();
overkiller 6:9eb153e1d472 78 return;
overkiller 6:9eb153e1d472 79 }else if(buttonClicks == 2)
overkiller 6:9eb153e1d472 80 {
overkiller 6:9eb153e1d472 81 canDrive = true;
overkiller 6:9eb153e1d472 82 applyStates();
overkiller 6:9eb153e1d472 83 return;
overkiller 6:9eb153e1d472 84 }else
overkiller 6:9eb153e1d472 85 {
overkiller 6:9eb153e1d472 86 buttonClicks = 0;
overkiller 6:9eb153e1d472 87 return;
overkiller 6:9eb153e1d472 88 }
overkiller 2:09cc6b203fe4 89
overkiller 6:9eb153e1d472 90 }
overkiller 1:90d75436758b 91 void enableAll()
overkiller 1:90d75436758b 92 {
overkiller 1:90d75436758b 93 en1 = 1;
overkiller 1:90d75436758b 94 en2 = 1;
overkiller 1:90d75436758b 95 }
overkiller 1:90d75436758b 96 void enableOne(int which)
overkiller 1:90d75436758b 97 {
overkiller 1:90d75436758b 98 if(which == 0)
overkiller 1:90d75436758b 99 {
overkiller 1:90d75436758b 100 en1 = 1;
overkiller 1:90d75436758b 101 }else if(which == 1)
overkiller 1:90d75436758b 102 {
overkiller 1:90d75436758b 103 en2 = 1;
overkiller 1:90d75436758b 104 }
overkiller 1:90d75436758b 105 }
overkiller 1:90d75436758b 106 void disableAll()
overkiller 1:90d75436758b 107 {
overkiller 1:90d75436758b 108 en1 = 0;
overkiller 1:90d75436758b 109 en2 = 0;
overkiller 1:90d75436758b 110 }
overkiller 1:90d75436758b 111 void disableOne(int which)
overkiller 1:90d75436758b 112 {
overkiller 1:90d75436758b 113 if(which == 0)
overkiller 1:90d75436758b 114 {
overkiller 1:90d75436758b 115 en1 = 0;
overkiller 1:90d75436758b 116 }else if(which == 1)
overkiller 1:90d75436758b 117 {
overkiller 1:90d75436758b 118 en2 = 0;
overkiller 1:90d75436758b 119 }
overkiller 1:90d75436758b 120 }
overkiller 1:90d75436758b 121 #endif //DRIVER_H