Library to use remote control Spektrum AR6210

Revision:
0:9a1f7660704d
Child:
1:25aad26619fb
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/AR6210.cpp	Wed Nov 20 10:26:54 2013 +0000
@@ -0,0 +1,48 @@
+#include "mbed.h"
+#include "AR6210.h"
+// Original code: https://mbed.org/users/BlazeX/code/AR8000/
+// Modified by Joram Querner for Spektrum AR6210
+
+AR6210::AR6210() :
+  ChInt0(InterruptIn(p6)), // throttle
+  ChInt1(InterruptIn(p8)), // aileron
+  ChInt2(InterruptIn(p7)), // elevator
+  ChInt3(InterruptIn(p5)), // rudder
+  ChInt4(InterruptIn(p9)), // gear
+  ChInt5(InterruptIn(p10)) // aux
+{}
+               
+void AR6210::init()
+{
+    Time.start();
+    
+    for(int i= 0; i < 6; i++) {
+        LastRise[i]= 0;
+        dTime[i]= 1000;
+    }
+    
+    ChInt0.mode(PullDown);   ChInt0.rise<AR6210>(this, &AR6210::Rise0);     ChInt0.fall<AR6210>(this, &AR6210::Fall0);
+    ChInt1.mode(PullDown);   ChInt1.rise<AR6210>(this, &AR6210::Rise1);     ChInt1.fall<AR6210>(this, &AR6210::Fall1);
+    ChInt2.mode(PullDown);   ChInt2.rise<AR6210>(this, &AR6210::Rise2);     ChInt2.fall<AR6210>(this, &AR6210::Fall2);
+    ChInt3.mode(PullDown);   ChInt3.rise<AR6210>(this, &AR6210::Rise3);     ChInt3.fall<AR6210>(this, &AR6210::Fall3);
+    ChInt4.mode(PullDown);   ChInt4.rise<AR6210>(this, &AR6210::Rise4);     ChInt4.fall<AR6210>(this, &AR6210::Fall4);
+    ChInt5.mode(PullDown);   ChInt5.rise<AR6210>(this, &AR6210::Rise5);     ChInt5.fall<AR6210>(this, &AR6210::Fall5);
+    
+    update();
+}
+
+void AR6210::update()
+{
+    //Rohdaten &#65533;hmen
+    for(int i= 0; i<6; i++)
+        RawChannels[i]= dTime[i];
+    
+    //Steuerbefehle berechnen
+    Throttle= float(dTime[0]-1000) * 0.001;
+    Aileron= float(dTime[1]-1500) * 0.002;
+    Elevator= float(dTime[2]-1500) * 0.002;
+    Rudder= float(dTime[3]-1500) * 0.002;
+    
+    Gear= float(dTime[4]-1500) * 0.002;
+    Aux= float(dTime[5]-1500) * 0.002;
+}
\ No newline at end of file