Library to use remote control Spektrum AR6210
AR6210.cpp@0:9a1f7660704d, 2013-11-20 (annotated)
- Committer:
- Joram
- Date:
- Wed Nov 20 10:26:54 2013 +0000
- Revision:
- 0:9a1f7660704d
- Child:
- 1:25aad26619fb
Initial import AR6210
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
Joram | 0:9a1f7660704d | 1 | #include "mbed.h" |
Joram | 0:9a1f7660704d | 2 | #include "AR6210.h" |
Joram | 0:9a1f7660704d | 3 | // Original code: https://mbed.org/users/BlazeX/code/AR8000/ |
Joram | 0:9a1f7660704d | 4 | // Modified by Joram Querner for Spektrum AR6210 |
Joram | 0:9a1f7660704d | 5 | |
Joram | 0:9a1f7660704d | 6 | AR6210::AR6210() : |
Joram | 0:9a1f7660704d | 7 | ChInt0(InterruptIn(p6)), // throttle |
Joram | 0:9a1f7660704d | 8 | ChInt1(InterruptIn(p8)), // aileron |
Joram | 0:9a1f7660704d | 9 | ChInt2(InterruptIn(p7)), // elevator |
Joram | 0:9a1f7660704d | 10 | ChInt3(InterruptIn(p5)), // rudder |
Joram | 0:9a1f7660704d | 11 | ChInt4(InterruptIn(p9)), // gear |
Joram | 0:9a1f7660704d | 12 | ChInt5(InterruptIn(p10)) // aux |
Joram | 0:9a1f7660704d | 13 | {} |
Joram | 0:9a1f7660704d | 14 | |
Joram | 0:9a1f7660704d | 15 | void AR6210::init() |
Joram | 0:9a1f7660704d | 16 | { |
Joram | 0:9a1f7660704d | 17 | Time.start(); |
Joram | 0:9a1f7660704d | 18 | |
Joram | 0:9a1f7660704d | 19 | for(int i= 0; i < 6; i++) { |
Joram | 0:9a1f7660704d | 20 | LastRise[i]= 0; |
Joram | 0:9a1f7660704d | 21 | dTime[i]= 1000; |
Joram | 0:9a1f7660704d | 22 | } |
Joram | 0:9a1f7660704d | 23 | |
Joram | 0:9a1f7660704d | 24 | ChInt0.mode(PullDown); ChInt0.rise<AR6210>(this, &AR6210::Rise0); ChInt0.fall<AR6210>(this, &AR6210::Fall0); |
Joram | 0:9a1f7660704d | 25 | ChInt1.mode(PullDown); ChInt1.rise<AR6210>(this, &AR6210::Rise1); ChInt1.fall<AR6210>(this, &AR6210::Fall1); |
Joram | 0:9a1f7660704d | 26 | ChInt2.mode(PullDown); ChInt2.rise<AR6210>(this, &AR6210::Rise2); ChInt2.fall<AR6210>(this, &AR6210::Fall2); |
Joram | 0:9a1f7660704d | 27 | ChInt3.mode(PullDown); ChInt3.rise<AR6210>(this, &AR6210::Rise3); ChInt3.fall<AR6210>(this, &AR6210::Fall3); |
Joram | 0:9a1f7660704d | 28 | ChInt4.mode(PullDown); ChInt4.rise<AR6210>(this, &AR6210::Rise4); ChInt4.fall<AR6210>(this, &AR6210::Fall4); |
Joram | 0:9a1f7660704d | 29 | ChInt5.mode(PullDown); ChInt5.rise<AR6210>(this, &AR6210::Rise5); ChInt5.fall<AR6210>(this, &AR6210::Fall5); |
Joram | 0:9a1f7660704d | 30 | |
Joram | 0:9a1f7660704d | 31 | update(); |
Joram | 0:9a1f7660704d | 32 | } |
Joram | 0:9a1f7660704d | 33 | |
Joram | 0:9a1f7660704d | 34 | void AR6210::update() |
Joram | 0:9a1f7660704d | 35 | { |
Joram | 0:9a1f7660704d | 36 | //Rohdaten �hmen |
Joram | 0:9a1f7660704d | 37 | for(int i= 0; i<6; i++) |
Joram | 0:9a1f7660704d | 38 | RawChannels[i]= dTime[i]; |
Joram | 0:9a1f7660704d | 39 | |
Joram | 0:9a1f7660704d | 40 | //Steuerbefehle berechnen |
Joram | 0:9a1f7660704d | 41 | Throttle= float(dTime[0]-1000) * 0.001; |
Joram | 0:9a1f7660704d | 42 | Aileron= float(dTime[1]-1500) * 0.002; |
Joram | 0:9a1f7660704d | 43 | Elevator= float(dTime[2]-1500) * 0.002; |
Joram | 0:9a1f7660704d | 44 | Rudder= float(dTime[3]-1500) * 0.002; |
Joram | 0:9a1f7660704d | 45 | |
Joram | 0:9a1f7660704d | 46 | Gear= float(dTime[4]-1500) * 0.002; |
Joram | 0:9a1f7660704d | 47 | Aux= float(dTime[5]-1500) * 0.002; |
Joram | 0:9a1f7660704d | 48 | } |