B16 Ping Pong Blink

Dependencies:   mbed

Committer:
hollegha3
Date:
Mon Oct 09 08:00:53 2017 +0000
Revision:
0:e86913f987fa
B16 Ping Pong Blink

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hollegha3 0:e86913f987fa 1
hollegha3 0:e86913f987fa 2 #include "mbed.h"
hollegha3 0:e86913f987fa 3 #include "Bertl16.h"
hollegha3 0:e86913f987fa 4
hollegha3 0:e86913f987fa 5 void ForewardUntilWall();
hollegha3 0:e86913f987fa 6
hollegha3 0:e86913f987fa 7 void BackwardUntilWall();
hollegha3 0:e86913f987fa 8
hollegha3 0:e86913f987fa 9 int MultiCheckBtn(DigitalIn& aBtn);
hollegha3 0:e86913f987fa 10
hollegha3 0:e86913f987fa 11 void FwBlinker();
hollegha3 0:e86913f987fa 12 void BwBlinker();
hollegha3 0:e86913f987fa 13
hollegha3 0:e86913f987fa 14 Timer t1;
hollegha3 0:e86913f987fa 15
hollegha3 0:e86913f987fa 16 int main(void)
hollegha3 0:e86913f987fa 17 {
hollegha3 0:e86913f987fa 18 boardPow=1;
hollegha3 0:e86913f987fa 19 AllLedsOff();
hollegha3 0:e86913f987fa 20 t1.start();
hollegha3 0:e86913f987fa 21
hollegha3 0:e86913f987fa 22 while( !MultiCheckBtn(BtnFM) )
hollegha3 0:e86913f987fa 23 {
hollegha3 0:e86913f987fa 24 }
hollegha3 0:e86913f987fa 25
hollegha3 0:e86913f987fa 26 while(1)
hollegha3 0:e86913f987fa 27 {
hollegha3 0:e86913f987fa 28 // BtnTest();
hollegha3 0:e86913f987fa 29 ForewardUntilWall();
hollegha3 0:e86913f987fa 30 BackwardUntilWall();
hollegha3 0:e86913f987fa 31 }
hollegha3 0:e86913f987fa 32
hollegha3 0:e86913f987fa 33 return 1;
hollegha3 0:e86913f987fa 34 }
hollegha3 0:e86913f987fa 35
hollegha3 0:e86913f987fa 36
hollegha3 0:e86913f987fa 37 void ForewardUntilWall()
hollegha3 0:e86913f987fa 38 {
hollegha3 0:e86913f987fa 39 LedFL1 = LedFR1 = 0;
hollegha3 0:e86913f987fa 40 mL.SetPow(0.3); mR.SetPow(0.3);
hollegha3 0:e86913f987fa 41 while( 1 )
hollegha3 0:e86913f987fa 42 {
hollegha3 0:e86913f987fa 43 if( MultiCheckBtn(BtnFM) || MultiCheckBtn(BtnFL) || MultiCheckBtn(BtnFR) )
hollegha3 0:e86913f987fa 44 break;
hollegha3 0:e86913f987fa 45 FwBlinker();
hollegha3 0:e86913f987fa 46 }
hollegha3 0:e86913f987fa 47 mL.SetPow(0.0); mR.SetPow(0.0);
hollegha3 0:e86913f987fa 48 LedFL1 = LedFR1 = 1;
hollegha3 0:e86913f987fa 49 }
hollegha3 0:e86913f987fa 50
hollegha3 0:e86913f987fa 51 void FwBlinker()
hollegha3 0:e86913f987fa 52 {
hollegha3 0:e86913f987fa 53 if( t1.read_ms()<100 )
hollegha3 0:e86913f987fa 54 return;
hollegha3 0:e86913f987fa 55 t1.reset();
hollegha3 0:e86913f987fa 56 LedFL1 = !LedFL1;
hollegha3 0:e86913f987fa 57 LedFR1 = !LedFR1;
hollegha3 0:e86913f987fa 58 }
hollegha3 0:e86913f987fa 59
hollegha3 0:e86913f987fa 60 void BackwardUntilWall()
hollegha3 0:e86913f987fa 61 {
hollegha3 0:e86913f987fa 62 LedBL1 = LedBR1 = 0;
hollegha3 0:e86913f987fa 63 mL.SetPow(-0.3); mR.SetPow(-0.3);
hollegha3 0:e86913f987fa 64 while( 1 )
hollegha3 0:e86913f987fa 65 {
hollegha3 0:e86913f987fa 66 if( MultiCheckBtn(BtnBL) || MultiCheckBtn(BtnBM) || MultiCheckBtn(BtnBR) )
hollegha3 0:e86913f987fa 67 break;
hollegha3 0:e86913f987fa 68 BwBlinker();
hollegha3 0:e86913f987fa 69 }
hollegha3 0:e86913f987fa 70 mL.SetPow(0.0); mR.SetPow(0.0);
hollegha3 0:e86913f987fa 71 LedBL1 = LedBR1 = 1;
hollegha3 0:e86913f987fa 72 }
hollegha3 0:e86913f987fa 73
hollegha3 0:e86913f987fa 74 void BwBlinker()
hollegha3 0:e86913f987fa 75 {
hollegha3 0:e86913f987fa 76 if( t1.read_ms()<100 )
hollegha3 0:e86913f987fa 77 return;
hollegha3 0:e86913f987fa 78 t1.reset();
hollegha3 0:e86913f987fa 79 LedBL1 = !LedBL1;
hollegha3 0:e86913f987fa 80 LedBR1 = !LedBR1;
hollegha3 0:e86913f987fa 81 }
hollegha3 0:e86913f987fa 82
hollegha3 0:e86913f987fa 83
hollegha3 0:e86913f987fa 84 int MultiCheckBtn(DigitalIn& aBtn)
hollegha3 0:e86913f987fa 85 {
hollegha3 0:e86913f987fa 86 int cnt=0;
hollegha3 0:e86913f987fa 87 for(int i=1; i<=10; i++)
hollegha3 0:e86913f987fa 88 {
hollegha3 0:e86913f987fa 89 if( aBtn.read()==0 )
hollegha3 0:e86913f987fa 90 cnt++;
hollegha3 0:e86913f987fa 91 }
hollegha3 0:e86913f987fa 92 if( cnt>=10 )
hollegha3 0:e86913f987fa 93 return 1;
hollegha3 0:e86913f987fa 94 return 0;
hollegha3 0:e86913f987fa 95 }
hollegha3 0:e86913f987fa 96
hollegha3 0:e86913f987fa 97
hollegha3 0:e86913f987fa 98
hollegha3 0:e86913f987fa 99
hollegha3 0:e86913f987fa 100
hollegha3 0:e86913f987fa 101
hollegha3 0:e86913f987fa 102
hollegha3 0:e86913f987fa 103
hollegha3 0:e86913f987fa 104
hollegha3 0:e86913f987fa 105
hollegha3 0:e86913f987fa 106
hollegha3 0:e86913f987fa 107
hollegha3 0:e86913f987fa 108
hollegha3 0:e86913f987fa 109
hollegha3 0:e86913f987fa 110
hollegha3 0:e86913f987fa 111