Revision:
0:d463d5c04541
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/rc.h	Tue Aug 16 05:32:33 2011 +0000
@@ -0,0 +1,111 @@
+Timer tick;
+InterruptIn rc(p11);
+short buf_ppm[6];
+char i = 0, idx, cnt = 0;
+
+void get_PPM(){
+    switch (idx){
+        case 1:
+            RC.roll = buf_ppm[2];
+            RC.throttle = buf_ppm[3];
+            RC.pitch = buf_ppm[4];
+            RC.yaw = buf_ppm[5];
+            RC.sw = buf_ppm[0];
+            break;
+            
+        case 2:
+            RC.roll = buf_ppm[3];
+            RC.throttle = buf_ppm[4];
+            RC.pitch = buf_ppm[5];
+            RC.yaw = buf_ppm[0];
+            RC.sw = buf_ppm[1];
+            break;
+            
+        case 3:
+            RC.roll = buf_ppm[4];
+            RC.throttle = buf_ppm[5];
+            RC.pitch = buf_ppm[0];
+            RC.yaw = buf_ppm[1];
+            RC.sw = buf_ppm[2];
+            break;
+            
+        case 4:           
+            RC.roll = buf_ppm[5];
+            RC.throttle = buf_ppm[0];
+            RC.pitch = buf_ppm[1];
+            RC.yaw = buf_ppm[2];
+            RC.sw = buf_ppm[3];
+            break;
+            
+        case 5:            
+            RC.roll = buf_ppm[0];
+            RC.throttle = buf_ppm[1];
+            RC.pitch = buf_ppm[2];
+            RC.yaw = buf_ppm[3];
+            RC.sw = buf_ppm[4];
+            break;
+            
+        case 0:            
+            RC.roll = buf_ppm[1];
+            RC.throttle = buf_ppm[2];
+            RC.pitch = buf_ppm[3];
+            RC.yaw = buf_ppm[4];
+            RC.sw = buf_ppm[5];
+            break;
+            
+        default: break;  
+    }    
+    return;
+}                                                                 
+    
+void getrc(){
+    RC.rolls = (RC.roll - 1518) * 0.73;
+    RC.throttles = (RC.throttle - 1105) * 0.3;
+    RC.pitchs = (RC.pitch - 1514) * 0.73;
+    RC.yaws = (RC.yaw - 1518) * 0.73;
+    RC.sws = RC.sw - 1518;
+    return;
+}    
+    
+    
+short rc_roll(){
+    return (short)(RC.roll);// 1518);
+}    
+
+short rc_throttle(){
+    return (short)(RC.throttle);// - 1105);
+} 
+
+short rc_pitch(){
+    return (short)(RC.pitch);// - 1514);
+}
+
+short rc_yaw(){
+    return (short)(RC.yaw);// - 1518);
+}
+
+short rc_sw(){
+    return (short)(RC.sw);// - 1518);
+}    
+     
+
+void PPM_rise() {
+    tick.stop();                        // Stop timer
+    buf_ppm[i]=tick.read_us();          // Read timer to buffer[i] i=turns
+    tick.reset();                       // Reset timer
+    tick.start();                       // Start timer
+    i++;                                // increment i.
+    if(buf_ppm[i]>5000) idx = i;    
+    if(i==6) i = 0;       
+    get_PPM();
+    return;
+}
+
+
+/*
+Channel 1 = Roll  
+Channel 2 = Throttle
+Channel 3 = Pitch
+Channel 4 = Yaw   
+Channel 5 = Switch 
+*/
\ No newline at end of file