Raharja Agie
/
Mini-X
rc.h
- Committer:
- agiembed
- Date:
- 2011-08-16
- Revision:
- 0:d463d5c04541
File content as of revision 0:d463d5c04541:
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 */