24
24
// ___ | | | | | | | | ___
25
25
// GND ---|___|---+----+----+----+ +----+----+----+----|___|--- GND
27
// ____________________ | __ | _____________________
27
// ________________________ | __ | _____________________
30
30
// (interrupt 0) (interrupt 1)
35
35
// Note that your receiver may not send pulses sequentially, in "channel order".
36
36
// If this turns out to be the case, you will need to arrange for the pulses to
37
// wire up the channels in an order whereby the pulses alternatively alternately
38
// between the two interrupts and adjust the channel order below.
37
// wire up the channels in an order whereby the pulses arrive alternately
38
// between the two interrupts and adjust the channel order in config.h.
43
// The four motor control outputs should be fed directly to the ESCs.
48
// ___________________ | __ | __ | __ | _____
50
// pin 4 o o o o pin 7
55
// The serial interface (pins 0 and 1) talk a very simple protocol. When a
56
// complete set of 8 channel values have been read, it writes 0xffff followed by
57
// the 8, 16-bit unsigned channel values. It expects to recieve 0xffff,
58
// followed by 4, 16-bit unsigned channel values. All channel values are in the
59
// range specified in config.h.
46
61
#include "config.h"
47
62
#include "receiver.h"
48
63
#include "motors.h"
74
pinMode( LED_PIN, OUTPUT );
75
digitalWrite( LED_PIN, LOW );
81
static bool on = false;
83
digitalWrite( LED_PIN, on? HIGH : LOW );
63
unsigned long channel_values[ NUM_CHANNELS ];
89
int channel_values[ NUM_CHANNELS ];
93
// have we read a whole set of channel values?
67
94
if( Receiver::read_channels( channel_values ) )
69
Testing::draw_receiver_channels( channel_values );
102
// send channel values to main board
103
Comms::write_channels( channel_values );
106
Motors::set_values( channel_values );
71
// Motors::update_channels( channel_values );