xous-core/services/ticktimer-server/src/lib.rs

23 lines
660 B
Rust
Raw Normal View History

2020-10-12 11:08:16 +00:00
#![cfg_attr(target_os = "none", no_std)]
pub mod api;
use xous::{send_message, Error, CID};
2020-10-12 11:08:16 +00:00
pub fn elapsed_ms(cid: CID) -> Result<u64, Error> {
let response = send_message(cid, api::Opcode::ElapsedMs.into())?;
2020-10-12 11:08:16 +00:00
if let xous::Result::Scalar2(upper, lower) = response {
Ok(upper as u64 | ((lower as u64) << 32))
2020-10-12 11:08:16 +00:00
} else {
panic!("unexpected return value: {:#?}", response);
}
}
2020-10-12 11:08:16 +00:00
pub fn reset(cid: CID) -> Result<(), xous::Error> {
send_message(cid, api::Opcode::Reset.into()).map(|_| ())
}
pub fn sleep_ms(cid: CID, ms: usize) -> Result<(), xous::Error> {
send_message(cid, api::Opcode::SleepMs(ms).into()).map(|_| ())
2020-10-12 11:08:16 +00:00
}