/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: dan
  • Date: 2014-04-12 19:32:21 UTC
  • Revision ID: dan-20140412193221-75teiczn7unc5kcf
Ignore extention ".kicad_pcb-bak"

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
 
#include <limits.h>
10
10
 
11
11
 
12
12
// channel sequence order
55
55
}
56
56
 
57
57
 
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[] )
 
58
bool Receiver::read_channels( int channel_values[] )
70
59
{
71
60
        static unsigned long last_pulse_down = 0;
72
61
        static int next_channel = 0;
104
93
                        {
105
94
                                // store channel value
106
95
                                int channel = channel_order_[ next_channel ] - 1;
107
 
                                channel_values[ channel ] = duration;
 
96
                                channel_values[ channel ] = MAX_CHANNEL_VALUE *
 
97
                                        ( duration - MIN_PULSE_WIDTH ) /
 
98
                                        ( MAX_PULSE_WIDTH - MIN_PULSE_WIDTH );
108
99
 
109
100
                                // we got a channel
110
101
                                next_channel++;