blob: b948b935781ff3cf288e0f73b25e367cd3b5d622 [file] [log] [blame]
#![no_std]
use core::fmt::Write;
use libtock::adc::AdcBuffer;
use libtock::result::TockResult;
use libtock::syscalls;
use libtock::Drivers;
#[libtock::main]
/// Reads a 128 byte sample into a buffer and prints the first value to the console.
async fn main() -> TockResult<()> {
let Drivers {
console_driver,
adc_driver,
..
} = libtock::retrieve_drivers()?;
let mut console = console_driver.create_console();
let mut adc_buffer = AdcBuffer::default();
let mut temp_buffer = [0; libtock::adc::BUFFER_SIZE];
let adc_buffer = libtock::adc::Adc::init_buffer(&mut adc_buffer)?;
let mut with_callback = adc_driver.with_callback(|_, _| {
adc_buffer.read_bytes(&mut temp_buffer[..]);
writeln!(console, "First sample in buffer: {}", temp_buffer[0]).unwrap();
});
let adc = with_callback.init()?;
loop {
adc.sample_continuous_buffered(0, 128)?;
unsafe { syscalls::raw::yieldk() };
}
}