Last commit 20 Apr 2012
Description: Remote Control 8 Channel Reading PPM via InterruptIn and Timer Offer Controls, TrimParameters, Failsafe, State
Revision 2:5bb207fd97c5, committed 14 Apr 2012
- Comitter:
- Date:
- Sat Apr 14 10:08:55 2012 +0000
- Parent:
- 1:a5bfae540999
- Child:
- 3:6ccc5c3acee1
- Commit message:
Changed in this revision
--- a/AR8000.cpp Fri Mar 23 15:59:47 2012 +0000
+++ b/AR8000.cpp Sat Apr 14 10:08:55 2012 +0000
@@ -39,6 +39,23 @@
//Update-Methode
void AR8000::Update()
{
- for(int i= 0; i < 8; i++)
- Pos[i]= dTime[i]-1000;
+ //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;
+
+ TrimL= float(dTime[6]-1500) * 0.002;
+ TrimR= float(dTime[7]-1500) * 0.002;
+ if(dTime[5] < 1500)
+ {
+ ControlActive= 0;
+ TrimK= float(dTime[5]-1250) * 0.004;
+ }
+ else
+ {
+ ControlActive= 1;
+ TrimK= float(dTime[5]-1750) * 0.004;
+ }
+ State= dTime[4] < 1200 ? 0 : dTime[4] < 1700 ? 1 : 2;
}
\ No newline at end of file
--- a/AR8000.h Fri Mar 23 15:59:47 2012 +0000
+++ b/AR8000.h Sat Apr 14 10:08:55 2012 +0000
@@ -1,6 +1,3 @@
-//TODO:
-//- Ein Timer reicht. Mit read_us() kann zu jeder Zeit die Zeit festgestellt werden
-
#pragma once
//Interrupt-Callback Vorlage
@@ -34,8 +31,19 @@
volatile int dTime[8]; //Pulsdauer in us [1000...2000]
public:
- //Das Ergebnis [0...1000], kann nach dem Update "gelesen werden"
- int Pos[8];
+ //Die Steuerbefehle
+ float Throttle; //0=Aus, 1=Vollgas
+ float Aileron; //-1=Links, 0=Nichts, +1=Rechts
+ float Elevator; //-1=Sinken, 0=Nichts, +1=Steigen
+ float Rudder; //-1=Links, 0=Nichts, +1=Rechts
+
+ float TrimL; //-1...+1 Left Trim
+ float TrimR; //-1...+1 Right Trim
+ float TrimK; //-1...+1 Knob
+
+ int ControlActive; //0=Failsafe, 1=Empfang vorhanden
+ int State; //0, 1, 2
+
//Initialisieren
AR8000();

