Christian Weiß
/
BertlTemplate3
BertlTemplate3
BertlPingPongBlink.cpp@0:5fd8e02b1e0e, 2018-11-15 (annotated)
- Committer:
- Wizo
- Date:
- Thu Nov 15 17:50:14 2018 +0000
- Revision:
- 0:5fd8e02b1e0e
BertlTemplate3
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Wizo | 0:5fd8e02b1e0e | 1 | #include "mbed.h" |
Wizo | 0:5fd8e02b1e0e | 2 | #include "Serial_HL.h" |
Wizo | 0:5fd8e02b1e0e | 3 | #include "Bertl14.h" |
Wizo | 0:5fd8e02b1e0e | 4 | #include "BertlObjects.h" |
Wizo | 0:5fd8e02b1e0e | 5 | |
Wizo | 0:5fd8e02b1e0e | 6 | // main=2^0 LS ENC 2^2 |
Wizo | 0:5fd8e02b1e0e | 7 | BusOut boardPow(p30, P1_6, P1_7); |
Wizo | 0:5fd8e02b1e0e | 8 | |
Wizo | 0:5fd8e02b1e0e | 9 | // ls5 nur beim Betrl15 |
Wizo | 0:5fd8e02b1e0e | 10 | // AnalogInHL ls1(p18), ls2(p16), ls3(p19), ls4(p17); // B14 |
Wizo | 0:5fd8e02b1e0e | 11 | |
Wizo | 0:5fd8e02b1e0e | 12 | //AnalogInHL ls1(p18), ls2(p16), ls3(p20), ls4(p19), ls5(p17); // B15 |
Wizo | 0:5fd8e02b1e0e | 13 | void ButonBlinker(); |
Wizo | 0:5fd8e02b1e0e | 14 | |
Wizo | 0:5fd8e02b1e0e | 15 | //void MotorTest (); |
Wizo | 0:5fd8e02b1e0e | 16 | |
Wizo | 0:5fd8e02b1e0e | 17 | void BackW (); |
Wizo | 0:5fd8e02b1e0e | 18 | void ForW (); |
Wizo | 0:5fd8e02b1e0e | 19 | void BlinkTask(); |
Wizo | 0:5fd8e02b1e0e | 20 | int direction = 0; //0 = zrueck und 1 = vorwaerts |
Wizo | 0:5fd8e02b1e0e | 21 | Timer t1; |
Wizo | 0:5fd8e02b1e0e | 22 | |
Wizo | 0:5fd8e02b1e0e | 23 | |
Wizo | 0:5fd8e02b1e0e | 24 | |
Wizo | 0:5fd8e02b1e0e | 25 | int main(void) |
Wizo | 0:5fd8e02b1e0e | 26 | { |
Wizo | 0:5fd8e02b1e0e | 27 | boardPow=1; |
Wizo | 0:5fd8e02b1e0e | 28 | wait_ms(10); |
Wizo | 0:5fd8e02b1e0e | 29 | InitBertl(); |
Wizo | 0:5fd8e02b1e0e | 30 | pex.useISR=0; |
Wizo | 0:5fd8e02b1e0e | 31 | leds=9; |
Wizo | 0:5fd8e02b1e0e | 32 | pex.ClearLeds(); |
Wizo | 0:5fd8e02b1e0e | 33 | t1.start(); |
Wizo | 0:5fd8e02b1e0e | 34 | |
Wizo | 0:5fd8e02b1e0e | 35 | pex.WaitUntilButtonPressed(); |
Wizo | 0:5fd8e02b1e0e | 36 | while(1) { |
Wizo | 0:5fd8e02b1e0e | 37 | //ButonBlinker(); |
Wizo | 0:5fd8e02b1e0e | 38 | //MotorTest (); |
Wizo | 0:5fd8e02b1e0e | 39 | BackW(); |
Wizo | 0:5fd8e02b1e0e | 40 | wait_ms(1000); |
Wizo | 0:5fd8e02b1e0e | 41 | ForW(); |
Wizo | 0:5fd8e02b1e0e | 42 | wait_ms(1000); |
Wizo | 0:5fd8e02b1e0e | 43 | } |
Wizo | 0:5fd8e02b1e0e | 44 | |
Wizo | 0:5fd8e02b1e0e | 45 | return 1; |
Wizo | 0:5fd8e02b1e0e | 46 | } |
Wizo | 0:5fd8e02b1e0e | 47 | |
Wizo | 0:5fd8e02b1e0e | 48 | void ButonBlinker() |
Wizo | 0:5fd8e02b1e0e | 49 | { |
Wizo | 0:5fd8e02b1e0e | 50 | pex.ReadButtons(); |
Wizo | 0:5fd8e02b1e0e | 51 | |
Wizo | 0:5fd8e02b1e0e | 52 | if (pex.IsButton(BTN_FLL)) |
Wizo | 0:5fd8e02b1e0e | 53 | { |
Wizo | 0:5fd8e02b1e0e | 54 | pex.SetLeds(LED_FL1|LED_FL2); |
Wizo | 0:5fd8e02b1e0e | 55 | } |
Wizo | 0:5fd8e02b1e0e | 56 | |
Wizo | 0:5fd8e02b1e0e | 57 | if (pex.IsButton(BTN_FRR)) |
Wizo | 0:5fd8e02b1e0e | 58 | { |
Wizo | 0:5fd8e02b1e0e | 59 | pex.SetLeds(LED_FR1|LED_FR2); |
Wizo | 0:5fd8e02b1e0e | 60 | } |
Wizo | 0:5fd8e02b1e0e | 61 | wait_ms(100); |
Wizo | 0:5fd8e02b1e0e | 62 | pex.ClearLeds(); |
Wizo | 0:5fd8e02b1e0e | 63 | wait_ms(100); |
Wizo | 0:5fd8e02b1e0e | 64 | } |
Wizo | 0:5fd8e02b1e0e | 65 | |
Wizo | 0:5fd8e02b1e0e | 66 | |
Wizo | 0:5fd8e02b1e0e | 67 | /* |
Wizo | 0:5fd8e02b1e0e | 68 | void MotorTest () |
Wizo | 0:5fd8e02b1e0e | 69 | { |
Wizo | 0:5fd8e02b1e0e | 70 | if (pex.IsButton(BTN_FRR||BTN_FLL)) |
Wizo | 0:5fd8e02b1e0e | 71 | { |
Wizo | 0:5fd8e02b1e0e | 72 | mL.SetPow(-0.2); |
Wizo | 0:5fd8e02b1e0e | 73 | mR.SetPow(-0.2); |
Wizo | 0:5fd8e02b1e0e | 74 | } |
Wizo | 0:5fd8e02b1e0e | 75 | |
Wizo | 0:5fd8e02b1e0e | 76 | |
Wizo | 0:5fd8e02b1e0e | 77 | else if (pex.IsButton(BTN_BR||BTN_BL)) |
Wizo | 0:5fd8e02b1e0e | 78 | { |
Wizo | 0:5fd8e02b1e0e | 79 | mL.SetPow(0.2); |
Wizo | 0:5fd8e02b1e0e | 80 | mR.SetPow(0.2); |
Wizo | 0:5fd8e02b1e0e | 81 | } |
Wizo | 0:5fd8e02b1e0e | 82 | |
Wizo | 0:5fd8e02b1e0e | 83 | //mL.SetPow(0.2); |
Wizo | 0:5fd8e02b1e0e | 84 | //mR.SetPow(0.2); |
Wizo | 0:5fd8e02b1e0e | 85 | |
Wizo | 0:5fd8e02b1e0e | 86 | //wait_ms(2000); |
Wizo | 0:5fd8e02b1e0e | 87 | |
Wizo | 0:5fd8e02b1e0e | 88 | //mL.SetPow(-0.2); |
Wizo | 0:5fd8e02b1e0e | 89 | //mR.SetPow(-0.2); |
Wizo | 0:5fd8e02b1e0e | 90 | |
Wizo | 0:5fd8e02b1e0e | 91 | //wait_ms(2000); |
Wizo | 0:5fd8e02b1e0e | 92 | |
Wizo | 0:5fd8e02b1e0e | 93 | |
Wizo | 0:5fd8e02b1e0e | 94 | |
Wizo | 0:5fd8e02b1e0e | 95 | |
Wizo | 0:5fd8e02b1e0e | 96 | } |
Wizo | 0:5fd8e02b1e0e | 97 | */ |
Wizo | 0:5fd8e02b1e0e | 98 | |
Wizo | 0:5fd8e02b1e0e | 99 | void BackW () |
Wizo | 0:5fd8e02b1e0e | 100 | { |
Wizo | 0:5fd8e02b1e0e | 101 | pex.ClearLeds(); |
Wizo | 0:5fd8e02b1e0e | 102 | mL.SetPow(0.3); |
Wizo | 0:5fd8e02b1e0e | 103 | mR.SetPow(0.3); |
Wizo | 0:5fd8e02b1e0e | 104 | direction = 0; |
Wizo | 0:5fd8e02b1e0e | 105 | |
Wizo | 0:5fd8e02b1e0e | 106 | pex.SetLeds(LED_FL1|LED_FL2); |
Wizo | 0:5fd8e02b1e0e | 107 | pex.SetLeds(LED_FR1|LED_FR2); |
Wizo | 0:5fd8e02b1e0e | 108 | |
Wizo | 0:5fd8e02b1e0e | 109 | |
Wizo | 0:5fd8e02b1e0e | 110 | |
Wizo | 0:5fd8e02b1e0e | 111 | |
Wizo | 0:5fd8e02b1e0e | 112 | while (1 ) { |
Wizo | 0:5fd8e02b1e0e | 113 | pex.ReadButtons(); |
Wizo | 0:5fd8e02b1e0e | 114 | BlinkTask(); |
Wizo | 0:5fd8e02b1e0e | 115 | |
Wizo | 0:5fd8e02b1e0e | 116 | if( pex.IsAnyFrontButton() ) { |
Wizo | 0:5fd8e02b1e0e | 117 | break; |
Wizo | 0:5fd8e02b1e0e | 118 | } |
Wizo | 0:5fd8e02b1e0e | 119 | |
Wizo | 0:5fd8e02b1e0e | 120 | } |
Wizo | 0:5fd8e02b1e0e | 121 | mL.SetPow(0); |
Wizo | 0:5fd8e02b1e0e | 122 | mR.SetPow(0); |
Wizo | 0:5fd8e02b1e0e | 123 | |
Wizo | 0:5fd8e02b1e0e | 124 | |
Wizo | 0:5fd8e02b1e0e | 125 | } |
Wizo | 0:5fd8e02b1e0e | 126 | |
Wizo | 0:5fd8e02b1e0e | 127 | |
Wizo | 0:5fd8e02b1e0e | 128 | void ForW () |
Wizo | 0:5fd8e02b1e0e | 129 | { |
Wizo | 0:5fd8e02b1e0e | 130 | pex.ClearLeds(); |
Wizo | 0:5fd8e02b1e0e | 131 | mL.SetPow(-0.3); |
Wizo | 0:5fd8e02b1e0e | 132 | mR.SetPow(-0.3); |
Wizo | 0:5fd8e02b1e0e | 133 | direction = 1; |
Wizo | 0:5fd8e02b1e0e | 134 | |
Wizo | 0:5fd8e02b1e0e | 135 | |
Wizo | 0:5fd8e02b1e0e | 136 | pex.SetLeds(LED_BL1|LED_BL2); |
Wizo | 0:5fd8e02b1e0e | 137 | pex.SetLeds(LED_BR1|LED_BR2); |
Wizo | 0:5fd8e02b1e0e | 138 | |
Wizo | 0:5fd8e02b1e0e | 139 | while (1 ) { |
Wizo | 0:5fd8e02b1e0e | 140 | pex.ReadButtons(); |
Wizo | 0:5fd8e02b1e0e | 141 | BlinkTask(); |
Wizo | 0:5fd8e02b1e0e | 142 | |
Wizo | 0:5fd8e02b1e0e | 143 | if( pex.IsAnyBackButton() ) { |
Wizo | 0:5fd8e02b1e0e | 144 | break; |
Wizo | 0:5fd8e02b1e0e | 145 | } |
Wizo | 0:5fd8e02b1e0e | 146 | |
Wizo | 0:5fd8e02b1e0e | 147 | |
Wizo | 0:5fd8e02b1e0e | 148 | } |
Wizo | 0:5fd8e02b1e0e | 149 | mL.SetPow(0); |
Wizo | 0:5fd8e02b1e0e | 150 | mR.SetPow(0); |
Wizo | 0:5fd8e02b1e0e | 151 | } |
Wizo | 0:5fd8e02b1e0e | 152 | |
Wizo | 0:5fd8e02b1e0e | 153 | void BlinkTask() |
Wizo | 0:5fd8e02b1e0e | 154 | { |
Wizo | 0:5fd8e02b1e0e | 155 | if( t1.read_ms()>100 ) // alle 100ms = 10Hz |
Wizo | 0:5fd8e02b1e0e | 156 | { |
Wizo | 0:5fd8e02b1e0e | 157 | t1.reset(); // timer neu starten |
Wizo | 0:5fd8e02b1e0e | 158 | |
Wizo | 0:5fd8e02b1e0e | 159 | if(direction == 0) |
Wizo | 0:5fd8e02b1e0e | 160 | { |
Wizo | 0:5fd8e02b1e0e | 161 | pex.ToggleLeds(LED_BL1| LED_BR1); |
Wizo | 0:5fd8e02b1e0e | 162 | pex.ToggleLeds(LED_BL2| LED_BR2); |
Wizo | 0:5fd8e02b1e0e | 163 | |
Wizo | 0:5fd8e02b1e0e | 164 | } else |
Wizo | 0:5fd8e02b1e0e | 165 | { |
Wizo | 0:5fd8e02b1e0e | 166 | pex.ToggleLeds(LED_FL1| LED_FR1); |
Wizo | 0:5fd8e02b1e0e | 167 | pex.ToggleLeds(LED_FL2| LED_FR2); |
Wizo | 0:5fd8e02b1e0e | 168 | } |
Wizo | 0:5fd8e02b1e0e | 169 | } |
Wizo | 0:5fd8e02b1e0e | 170 | } |
Wizo | 0:5fd8e02b1e0e | 171 |