A fork of AR8000
Dependents: Sumo_v2 Sumo_v2_Unstable Sumo_v2_RG13
AR8000.h@9:c57888a66a5f, 2012-04-20 (annotated)
- Committer:
- BlazeX
- Date:
- Fri Apr 20 11:02:25 2012 +0000
- Revision:
- 9:c57888a66a5f
- Parent:
- 7:0b27bef14b0e
Enabled mirrored connections (Channel0 at pin of Channel8 and vice versa)
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
BlazeX | 0:b08668430838 | 1 | #pragma once |
BlazeX | 0:b08668430838 | 2 | |
BlazeX | 9:c57888a66a5f | 3 | #define AR8000_CONNECTORS_MIRRORED |
BlazeX | 9:c57888a66a5f | 4 | |
BlazeX | 0:b08668430838 | 5 | //Interrupt-Callback Vorlage |
BlazeX | 0:b08668430838 | 6 | #define AR8000_RISE_FALL(Ch)\ |
BlazeX | 0:b08668430838 | 7 | void Rise##Ch()\ |
BlazeX | 0:b08668430838 | 8 | {\ |
BlazeX | 0:b08668430838 | 9 | LastRise[Ch]= Time.read_us();\ |
BlazeX | 0:b08668430838 | 10 | }\ |
BlazeX | 0:b08668430838 | 11 | void Fall##Ch()\ |
BlazeX | 0:b08668430838 | 12 | {\ |
BlazeX | 0:b08668430838 | 13 | int dT= Time.read_us() - LastRise[Ch];\ |
BlazeX | 6:ce4f088d8111 | 14 | if(dT > 900 && dT < 2100)\ |
BlazeX | 0:b08668430838 | 15 | dTime[Ch]= dT;\ |
BlazeX | 0:b08668430838 | 16 | } |
BlazeX | 0:b08668430838 | 17 | |
BlazeX | 0:b08668430838 | 18 | |
BlazeX | 0:b08668430838 | 19 | class AR8000 |
BlazeX | 0:b08668430838 | 20 | { |
BlazeX | 0:b08668430838 | 21 | private: |
BlazeX | 1:a5bfae540999 | 22 | InterruptIn ChInt0; //Interrupt-Handler fuer jeden Pin |
BlazeX | 1:a5bfae540999 | 23 | InterruptIn ChInt1; |
BlazeX | 1:a5bfae540999 | 24 | InterruptIn ChInt2; |
BlazeX | 1:a5bfae540999 | 25 | InterruptIn ChInt3; |
BlazeX | 1:a5bfae540999 | 26 | InterruptIn ChInt4; |
BlazeX | 1:a5bfae540999 | 27 | InterruptIn ChInt5; |
BlazeX | 1:a5bfae540999 | 28 | InterruptIn ChInt6; |
BlazeX | 1:a5bfae540999 | 29 | InterruptIn ChInt7; |
BlazeX | 0:b08668430838 | 30 | |
BlazeX | 0:b08668430838 | 31 | Timer Time; //Timer for all 8 Channels |
BlazeX | 0:b08668430838 | 32 | volatile int LastRise[8]; //Zeitpunkt der letzten steigende Flanke |
BlazeX | 0:b08668430838 | 33 | volatile int dTime[8]; //Pulsdauer in us [1000...2000] |
BlazeX | 0:b08668430838 | 34 | |
BlazeX | 0:b08668430838 | 35 | public: |
BlazeX | 6:ce4f088d8111 | 36 | int RawChannels[8]; //Rohdaten [1000...2000] |
BlazeX | 6:ce4f088d8111 | 37 | |
BlazeX | 2:5bb207fd97c5 | 38 | //Die Steuerbefehle |
BlazeX | 2:5bb207fd97c5 | 39 | float Throttle; //0=Aus, 1=Vollgas |
BlazeX | 2:5bb207fd97c5 | 40 | float Aileron; //-1=Links, 0=Nichts, +1=Rechts |
BlazeX | 2:5bb207fd97c5 | 41 | float Elevator; //-1=Sinken, 0=Nichts, +1=Steigen |
BlazeX | 2:5bb207fd97c5 | 42 | float Rudder; //-1=Links, 0=Nichts, +1=Rechts |
BlazeX | 2:5bb207fd97c5 | 43 | |
BlazeX | 7:0b27bef14b0e | 44 | float Aux1; //-1...+1 Left Trim |
BlazeX | 7:0b27bef14b0e | 45 | float Aux2; //-1...+1 Right Trim |
BlazeX | 7:0b27bef14b0e | 46 | float Aux3; //-1...+1 Knob |
BlazeX | 2:5bb207fd97c5 | 47 | |
BlazeX | 7:0b27bef14b0e | 48 | int State1; //0, 1 Gear |
BlazeX | 7:0b27bef14b0e | 49 | int State2; //0, 1, 2 F-Mode |
BlazeX | 2:5bb207fd97c5 | 50 | |
BlazeX | 0:b08668430838 | 51 | |
BlazeX | 0:b08668430838 | 52 | //Initialisieren |
BlazeX | 1:a5bfae540999 | 53 | AR8000(); |
BlazeX | 0:b08668430838 | 54 | void Init(); |
BlazeX | 0:b08668430838 | 55 | |
BlazeX | 0:b08668430838 | 56 | //Interrupt-Callbacks definieren |
BlazeX | 0:b08668430838 | 57 | AR8000_RISE_FALL(0); |
BlazeX | 0:b08668430838 | 58 | AR8000_RISE_FALL(1); |
BlazeX | 0:b08668430838 | 59 | AR8000_RISE_FALL(2); |
BlazeX | 0:b08668430838 | 60 | AR8000_RISE_FALL(3); |
BlazeX | 0:b08668430838 | 61 | AR8000_RISE_FALL(4); |
BlazeX | 0:b08668430838 | 62 | AR8000_RISE_FALL(5); |
BlazeX | 0:b08668430838 | 63 | AR8000_RISE_FALL(6); |
BlazeX | 0:b08668430838 | 64 | AR8000_RISE_FALL(7); |
BlazeX | 0:b08668430838 | 65 | |
BlazeX | 0:b08668430838 | 66 | //Update-Methode |
BlazeX | 0:b08668430838 | 67 | void Update(); |
BlazeX | 0:b08668430838 | 68 | }; |