Library to use remote control Spektrum AR6210

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?

UserRevisionLine numberNew 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 &#65533;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 }