/elec/quadcopter

To get this branch, use:
bzr branch http://bzr.ed.am/elec/quadcopter

« back to all changes in this revision

Viewing changes to src/rc-interface/receiver.cc

  • Committer: Tim Marston
  • Date: 2014-02-05 22:15:49 UTC
  • Revision ID: tim@ed.am-20140205221549-jmrvij7zyl1cn8j9
stabalised the PPM output on the rc-interface board

Show diffs side-by-side

added added

removed removed

5
5
 
6
6
#include "receiver.h"
7
7
#include "config.h"
 
8
#include "common.h"
8
9
#include <Arduino.h>
9
10
#include <limits.h>
10
11
 
55
56
}
56
57
 
57
58
 
58
 
static unsigned long calculate_duration( unsigned long then, unsigned long now )
59
 
{
60
 
        return now - then;
61
 
        
62
 
        if( now < then )
63
 
                return now + ( ULONG_MAX - then );
64
 
        else
65
 
                return now - then;
66
 
}
67
 
 
68
 
 
69
 
bool Receiver::read_channels( unsigned long channel_values[] )
 
59
bool Receiver::read_channels( int channel_values[] )
70
60
{
71
61
        static unsigned long last_pulse_down = 0;
72
62
        static int next_channel = 0;
104
94
                        {
105
95
                                // store channel value
106
96
                                int channel = channel_order_[ next_channel ] - 1;
107
 
                                channel_values[ channel ] = duration;
 
97
                                channel_values[ channel ] = MAX_CHANNEL_VALUE *
 
98
                                        ( duration - MIN_PULSE_WIDTH ) /
 
99
                                        ( MAX_PULSE_WIDTH - MIN_PULSE_WIDTH );
108
100
 
109
101
                                // we got a channel
110
102
                                next_channel++;