Ultraschall Test Geschwindigkeitsregelung

Fork of BertlLib by michael hollegha

Committer:
TFuchsbichler
Date:
Mon Apr 25 06:55:29 2016 +0000
Revision:
7:01d2bc098b6d
Parent:
6:78243412d2b3
Ultraschallsensor Test

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hollegha2 0:e0131e671ea0 1
hollegha2 0:e0131e671ea0 2 #ifndef Bertl14_h
hollegha2 0:e0131e671ea0 3 #define Bertl14_h
hollegha2 0:e0131e671ea0 4
hollegha2 0:e0131e671ea0 5
hollegha2 0:e0131e671ea0 6 const int BTN_FLL = 0x80;
hollegha2 0:e0131e671ea0 7 const int BTN_FL = 0x04;
hollegha2 0:e0131e671ea0 8 const int BTN_FM = 0x01;
hollegha2 0:e0131e671ea0 9 const int BTN_FR = 0x08;
hollegha2 0:e0131e671ea0 10 const int BTN_FRR = 0x40;
hollegha2 0:e0131e671ea0 11 const int BTN_BL = 0x10;
hollegha2 0:e0131e671ea0 12 const int BTN_BM = 0x02;
hollegha2 0:e0131e671ea0 13 const int BTN_BR = 0x20;
hollegha2 0:e0131e671ea0 14
hollegha2 0:e0131e671ea0 15 const int LED_FL1 = 0x01; // white die vordere
hollegha2 0:e0131e671ea0 16 const int LED_FL2 = 0x02; // red die hintere
hollegha2 0:e0131e671ea0 17 const int LED_FR1 = 0x04; // white
hollegha2 0:e0131e671ea0 18 const int LED_FR2 = 0x08; // red
hollegha2 0:e0131e671ea0 19 const int LED_ALL_FRONT = 0x0F;
hollegha2 0:e0131e671ea0 20
hollegha2 0:e0131e671ea0 21 const int LED_BL1 = 0x20; // red back left outher
hollegha2 0:e0131e671ea0 22 const int LED_BL2 = 0x10; // red back left inner
hollegha2 0:e0131e671ea0 23 const int LED_BR1 = 0x80; // red back right outher
hollegha2 0:e0131e671ea0 24 const int LED_BR2 = 0x40; // red back right inner
hollegha2 0:e0131e671ea0 25 const int LED_ALL_BACK = 0xF0;
hollegha2 0:e0131e671ea0 26
hollegha2 0:e0131e671ea0 27
hollegha2 0:e0131e671ea0 28 class PortEx {
hollegha2 0:e0131e671ea0 29 public:
hollegha2 0:e0131e671ea0 30 // Current State of Buttons is refreshed with ReadButtons()
hollegha2 0:e0131e671ea0 31 int16_t btns;
hollegha2 0:e0131e671ea0 32 uint8_t btnEvent;
hollegha2 0:e0131e671ea0 33 uint8_t useISR;
hollegha2 0:e0131e671ea0 34 public:
hollegha2 0:e0131e671ea0 35 PortEx();
hollegha2 0:e0131e671ea0 36 void Init();
hollegha2 0:e0131e671ea0 37
hollegha2 0:e0131e671ea0 38 void SetLedPort(uint8_t aBitPattern); // NO local Bit-OR
hollegha2 0:e0131e671ea0 39 void SetLeds(uint8_t aBitPattern);
hollegha2 0:e0131e671ea0 40 void ToggleLeds(uint8_t aBitPattern);
hollegha2 0:e0131e671ea0 41 void ClearLeds();
hollegha2 0:e0131e671ea0 42
hollegha2 0:e0131e671ea0 43 void ReadButtons();
hollegha2 0:e0131e671ea0 44 void WaitUntilButtonPressed();
hollegha2 6:78243412d2b3 45 void WaitUntilFrontButtonPressed();
hollegha2 0:e0131e671ea0 46
hollegha2 0:e0131e671ea0 47 bool IsButton(int aBitPattern)
hollegha2 0:e0131e671ea0 48 { return btns & aBitPattern; }
hollegha2 0:e0131e671ea0 49
hollegha2 0:e0131e671ea0 50 bool IsAnyFrontButton()
hollegha2 0:e0131e671ea0 51 { return btns & (BTN_FL|BTN_FM|BTN_FR); }
hollegha2 0:e0131e671ea0 52
hollegha2 0:e0131e671ea0 53 bool IsAnyBackButton()
hollegha2 0:e0131e671ea0 54 { return btns & (BTN_BL|BTN_BM|BTN_BR); }
hollegha2 0:e0131e671ea0 55 private:
hollegha2 0:e0131e671ea0 56 uint8_t _currLeds;
hollegha2 0:e0131e671ea0 57 void p6ISR();
hollegha2 0:e0131e671ea0 58 I2C _i2c;
hollegha2 0:e0131e671ea0 59 const int DEV = 0x40;
hollegha2 0:e0131e671ea0 60 InterruptIn _p6Event;
hollegha2 0:e0131e671ea0 61 };
hollegha2 0:e0131e671ea0 62
hollegha2 0:e0131e671ea0 63
hollegha2 0:e0131e671ea0 64 class UsDistSens {
hollegha2 0:e0131e671ea0 65 public:
hollegha2 0:e0131e671ea0 66 UsDistSens(PinName pinTrigger, PinName pinEcho);
hollegha2 0:e0131e671ea0 67 void StartMeas();
hollegha2 0:e0131e671ea0 68 private:
hollegha2 0:e0131e671ea0 69 void RisingISR();
hollegha2 0:e0131e671ea0 70 void FallingISR();
hollegha2 0:e0131e671ea0 71 private:
hollegha2 0:e0131e671ea0 72 DigitalOut trigger;
hollegha2 0:e0131e671ea0 73 InterruptIn echo;
hollegha2 0:e0131e671ea0 74 Timer stw;
hollegha2 0:e0131e671ea0 75 public:
hollegha2 0:e0131e671ea0 76 int dist;
hollegha2 0:e0131e671ea0 77 float distCM;
hollegha2 0:e0131e671ea0 78 };
hollegha2 0:e0131e671ea0 79
hollegha2 2:16a5d3302ddb 80 #ifndef ANALOGIN_HL
hollegha2 2:16a5d3302ddb 81 #define ANALOGIN_HL
hollegha2 2:16a5d3302ddb 82 class AnalogInHL : public AnalogIn {
hollegha2 2:16a5d3302ddb 83 public:
hollegha2 2:16a5d3302ddb 84 AnalogInHL(PinName pin) : AnalogIn(pin) { }
hollegha2 2:16a5d3302ddb 85 int Read()
hollegha2 2:16a5d3302ddb 86 { return read_u16()>>6; }
hollegha2 2:16a5d3302ddb 87 };
hollegha2 0:e0131e671ea0 88 #endif
hollegha2 2:16a5d3302ddb 89
hollegha2 2:16a5d3302ddb 90 #endif
hollegha2 2:16a5d3302ddb 91
hollegha2 2:16a5d3302ddb 92
hollegha2 2:16a5d3302ddb 93
hollegha2 2:16a5d3302ddb 94
hollegha2 2:16a5d3302ddb 95
hollegha2 2:16a5d3302ddb 96
hollegha2 2:16a5d3302ddb 97
hollegha2 2:16a5d3302ddb 98
hollegha2 2:16a5d3302ddb 99
hollegha2 2:16a5d3302ddb 100
hollegha2 2:16a5d3302ddb 101
hollegha2 2:16a5d3302ddb 102
hollegha2 2:16a5d3302ddb 103
hollegha2 2:16a5d3302ddb 104
hollegha2 2:16a5d3302ddb 105
hollegha2 2:16a5d3302ddb 106
hollegha2 2:16a5d3302ddb 107
hollegha2 2:16a5d3302ddb 108
hollegha2 2:16a5d3302ddb 109
hollegha2 2:16a5d3302ddb 110
hollegha2 2:16a5d3302ddb 111
hollegha2 2:16a5d3302ddb 112
hollegha2 2:16a5d3302ddb 113