interactive: Make libraries buildable

Some confusion with the types and scope is resolved by making the ring
buffer a cpp file (it's all C though), and adding a header for the
definition of pins.

Signed-off-by: Joel Stanley <joel@jms.id.au>
interactive: improve error message when timeout

When the frequency input times out, we print Error. Change it so the
user has a better chance of knowing what's going on.

Signed-off-by: Joel Stanley <joel@jms.id.au>
Add gitignore

Signed-off-by: Joel Stanley <joel@jms.id.au>
Remove executable bits from TimerOne

Signed-off-by: Joel Stanley <joel@jms.id.au>
interactive: Add channel selection

Using the new menu item 'A' (case insensitive), a user can select from a
list of predefined channels. This eases configuration when setting up
more than one device, with the TX being 1500Hz above the RX.

Note that we listen on the third harmonic of the TX to avoid issues with
the RX stage not be able to tune very well above 27MHz (due to phase
imbalance issues).

Signed-off-by: Joel Stanley <joel@jms.id.au>