Read IMU data at Serial port (p28, p27), data rate <100Hz @115200bps Read 5 channels PPM signal at p11 using InterruptIn Send data via RF Modem at serial port (p13, p14) in 36Hz @115200 Drive i2C motor speed controller at I2C port (p9, p10) in every 10mS (control loop delay time)
rcrx.h@0:7ccd56e1c3b1, 2010-08-11 (annotated)
- Committer:
- agiembed
- Date:
- Wed Aug 11 01:23:42 2010 +0000
- Revision:
- 0:7ccd56e1c3b1
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
agiembed | 0:7ccd56e1c3b1 | 1 | Timer tick; |
agiembed | 0:7ccd56e1c3b1 | 2 | InterruptIn rc(p11); |
agiembed | 0:7ccd56e1c3b1 | 3 | short buf_ppm[5]; |
agiembed | 0:7ccd56e1c3b1 | 4 | char i = 0; |
agiembed | 0:7ccd56e1c3b1 | 5 | |
agiembed | 0:7ccd56e1c3b1 | 6 | void PPM_rise() { |
agiembed | 0:7ccd56e1c3b1 | 7 | tick.stop(); // Stop timer |
agiembed | 0:7ccd56e1c3b1 | 8 | buf_ppm[i]=tick.read_us(); // Read timer to buffer[i] i=turns |
agiembed | 0:7ccd56e1c3b1 | 9 | tick.reset(); // Reset timer |
agiembed | 0:7ccd56e1c3b1 | 10 | i++; // increment i. |
agiembed | 0:7ccd56e1c3b1 | 11 | if (i==6) i = 0; |
agiembed | 0:7ccd56e1c3b1 | 12 | return; |
agiembed | 0:7ccd56e1c3b1 | 13 | } |
agiembed | 0:7ccd56e1c3b1 | 14 | |
agiembed | 0:7ccd56e1c3b1 | 15 | void PPM_fall() { // Rising edge on the serial comm |
agiembed | 0:7ccd56e1c3b1 | 16 | tick.start(); // Start the timer |
agiembed | 0:7ccd56e1c3b1 | 17 | return; |
agiembed | 0:7ccd56e1c3b1 | 18 | } |