Committer:
agiembed
Date:
Tue Aug 16 05:32:33 2011 +0000
Revision:
0:d463d5c04541

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
agiembed 0:d463d5c04541 1 Timer tick;
agiembed 0:d463d5c04541 2 InterruptIn rc(p11);
agiembed 0:d463d5c04541 3 short buf_ppm[6];
agiembed 0:d463d5c04541 4 char i = 0, idx, cnt = 0;
agiembed 0:d463d5c04541 5
agiembed 0:d463d5c04541 6 void get_PPM(){
agiembed 0:d463d5c04541 7 switch (idx){
agiembed 0:d463d5c04541 8 case 1:
agiembed 0:d463d5c04541 9 RC.roll = buf_ppm[2];
agiembed 0:d463d5c04541 10 RC.throttle = buf_ppm[3];
agiembed 0:d463d5c04541 11 RC.pitch = buf_ppm[4];
agiembed 0:d463d5c04541 12 RC.yaw = buf_ppm[5];
agiembed 0:d463d5c04541 13 RC.sw = buf_ppm[0];
agiembed 0:d463d5c04541 14 break;
agiembed 0:d463d5c04541 15
agiembed 0:d463d5c04541 16 case 2:
agiembed 0:d463d5c04541 17 RC.roll = buf_ppm[3];
agiembed 0:d463d5c04541 18 RC.throttle = buf_ppm[4];
agiembed 0:d463d5c04541 19 RC.pitch = buf_ppm[5];
agiembed 0:d463d5c04541 20 RC.yaw = buf_ppm[0];
agiembed 0:d463d5c04541 21 RC.sw = buf_ppm[1];
agiembed 0:d463d5c04541 22 break;
agiembed 0:d463d5c04541 23
agiembed 0:d463d5c04541 24 case 3:
agiembed 0:d463d5c04541 25 RC.roll = buf_ppm[4];
agiembed 0:d463d5c04541 26 RC.throttle = buf_ppm[5];
agiembed 0:d463d5c04541 27 RC.pitch = buf_ppm[0];
agiembed 0:d463d5c04541 28 RC.yaw = buf_ppm[1];
agiembed 0:d463d5c04541 29 RC.sw = buf_ppm[2];
agiembed 0:d463d5c04541 30 break;
agiembed 0:d463d5c04541 31
agiembed 0:d463d5c04541 32 case 4:
agiembed 0:d463d5c04541 33 RC.roll = buf_ppm[5];
agiembed 0:d463d5c04541 34 RC.throttle = buf_ppm[0];
agiembed 0:d463d5c04541 35 RC.pitch = buf_ppm[1];
agiembed 0:d463d5c04541 36 RC.yaw = buf_ppm[2];
agiembed 0:d463d5c04541 37 RC.sw = buf_ppm[3];
agiembed 0:d463d5c04541 38 break;
agiembed 0:d463d5c04541 39
agiembed 0:d463d5c04541 40 case 5:
agiembed 0:d463d5c04541 41 RC.roll = buf_ppm[0];
agiembed 0:d463d5c04541 42 RC.throttle = buf_ppm[1];
agiembed 0:d463d5c04541 43 RC.pitch = buf_ppm[2];
agiembed 0:d463d5c04541 44 RC.yaw = buf_ppm[3];
agiembed 0:d463d5c04541 45 RC.sw = buf_ppm[4];
agiembed 0:d463d5c04541 46 break;
agiembed 0:d463d5c04541 47
agiembed 0:d463d5c04541 48 case 0:
agiembed 0:d463d5c04541 49 RC.roll = buf_ppm[1];
agiembed 0:d463d5c04541 50 RC.throttle = buf_ppm[2];
agiembed 0:d463d5c04541 51 RC.pitch = buf_ppm[3];
agiembed 0:d463d5c04541 52 RC.yaw = buf_ppm[4];
agiembed 0:d463d5c04541 53 RC.sw = buf_ppm[5];
agiembed 0:d463d5c04541 54 break;
agiembed 0:d463d5c04541 55
agiembed 0:d463d5c04541 56 default: break;
agiembed 0:d463d5c04541 57 }
agiembed 0:d463d5c04541 58 return;
agiembed 0:d463d5c04541 59 }
agiembed 0:d463d5c04541 60
agiembed 0:d463d5c04541 61 void getrc(){
agiembed 0:d463d5c04541 62 RC.rolls = (RC.roll - 1518) * 0.73;
agiembed 0:d463d5c04541 63 RC.throttles = (RC.throttle - 1105) * 0.3;
agiembed 0:d463d5c04541 64 RC.pitchs = (RC.pitch - 1514) * 0.73;
agiembed 0:d463d5c04541 65 RC.yaws = (RC.yaw - 1518) * 0.73;
agiembed 0:d463d5c04541 66 RC.sws = RC.sw - 1518;
agiembed 0:d463d5c04541 67 return;
agiembed 0:d463d5c04541 68 }
agiembed 0:d463d5c04541 69
agiembed 0:d463d5c04541 70
agiembed 0:d463d5c04541 71 short rc_roll(){
agiembed 0:d463d5c04541 72 return (short)(RC.roll);// 1518);
agiembed 0:d463d5c04541 73 }
agiembed 0:d463d5c04541 74
agiembed 0:d463d5c04541 75 short rc_throttle(){
agiembed 0:d463d5c04541 76 return (short)(RC.throttle);// - 1105);
agiembed 0:d463d5c04541 77 }
agiembed 0:d463d5c04541 78
agiembed 0:d463d5c04541 79 short rc_pitch(){
agiembed 0:d463d5c04541 80 return (short)(RC.pitch);// - 1514);
agiembed 0:d463d5c04541 81 }
agiembed 0:d463d5c04541 82
agiembed 0:d463d5c04541 83 short rc_yaw(){
agiembed 0:d463d5c04541 84 return (short)(RC.yaw);// - 1518);
agiembed 0:d463d5c04541 85 }
agiembed 0:d463d5c04541 86
agiembed 0:d463d5c04541 87 short rc_sw(){
agiembed 0:d463d5c04541 88 return (short)(RC.sw);// - 1518);
agiembed 0:d463d5c04541 89 }
agiembed 0:d463d5c04541 90
agiembed 0:d463d5c04541 91
agiembed 0:d463d5c04541 92 void PPM_rise() {
agiembed 0:d463d5c04541 93 tick.stop(); // Stop timer
agiembed 0:d463d5c04541 94 buf_ppm[i]=tick.read_us(); // Read timer to buffer[i] i=turns
agiembed 0:d463d5c04541 95 tick.reset(); // Reset timer
agiembed 0:d463d5c04541 96 tick.start(); // Start timer
agiembed 0:d463d5c04541 97 i++; // increment i.
agiembed 0:d463d5c04541 98 if(buf_ppm[i]>5000) idx = i;
agiembed 0:d463d5c04541 99 if(i==6) i = 0;
agiembed 0:d463d5c04541 100 get_PPM();
agiembed 0:d463d5c04541 101 return;
agiembed 0:d463d5c04541 102 }
agiembed 0:d463d5c04541 103
agiembed 0:d463d5c04541 104
agiembed 0:d463d5c04541 105 /*
agiembed 0:d463d5c04541 106 Channel 1 = Roll
agiembed 0:d463d5c04541 107 Channel 2 = Throttle
agiembed 0:d463d5c04541 108 Channel 3 = Pitch
agiembed 0:d463d5c04541 109 Channel 4 = Yaw
agiembed 0:d463d5c04541 110 Channel 5 = Switch
agiembed 0:d463d5c04541 111 */