Expand description
Rust adaptation of the RP6Lib provided with the original Robby RP6 robot.
Example usage (see examples/
directory for more):
#![no_std]
#![no_main]
use rp6::*;
/// entry point for the embedded rust program
#[entry]
fn main() -> ! {
RobotBase::init();
Serial::write("Hello world!\n");
let init_leds: u8 = 0b001001;
let mut running_light: u8 = init_leds;
// main loop:
loop {
// set LEDs according to the binary number `running_light`
RobotBase::set_leds(running_light);
// sleep for 250ms (= a quarter of one second)
delay_ms(250);
// shift to the left for the 'running' effect
running_light <<= 1;
// reset to the initial LED pattern after the last LED was lit
if running_light > 0b111111 {
running_light = init_leds;
}
}
}
Re-exports
Modules
This module combines some simple device-abstraction for AVR microcontrollers. Currently only
supports the atmega32 target, but could be extended to other avr devices.
Re-exports commonly-used API that can be imported at once.
Module for general interaction with the specific systems installed on the RP6’s robot base.
UART = “Universal Aynchronous Receiver Transceiver”
Macros
Convenience macro that allows to write multiple (formatted)
Serial::write
statements as a
single call. Currently supported formatters are dec
and hex
for numbers.Convenience macro that allows to use the
print!
macro and append a newline character.Functions
Blocking procedure that allows to
delay for N milliseconds
Blocking procedure that allows to
delay for N microseconds