Raharja Agie
/
Mini-X
Diff: rc.h
- 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