62 lines
2.5 KiB
Rust
62 lines
2.5 KiB
Rust
//! Function routing on INT1 register (r/w).
|
|
|
|
use crate::lsm6ds3tr::{RegisterAddress, RegisterBits, RegisterConfig, RegisterValue};
|
|
|
|
/// Function routing on INT1 register (r/w).
|
|
#[derive(Default)]
|
|
pub struct Md1Cfg {
|
|
/// Routing on INT1 of inactivity mode. Default: 0
|
|
/// (0: routing on INT1 of inactivity disabled; 1: routing on INT1 of inactivity enabled)
|
|
pub inactivity_event: RegisterBits<1, 7>,
|
|
/// Single-tap recognition routing on INT1. Default: 0
|
|
/// (0: routing of single-tap event on INT1 disabled;
|
|
/// 1: routing of single-tap event on INT1 enabled)
|
|
pub single_tap_event: RegisterBits<1, 6>,
|
|
/// Routing of wakeup event on INT1. Default value: 0
|
|
/// (0: routing of wakeup event on INT1 disabled;
|
|
/// 1: routing of wakeup event on INT1 enabled)
|
|
pub wake_up_event: RegisterBits<1, 5>,
|
|
/// Routing of free-fall event on INT1. Default value: 0
|
|
/// (0: routing of free-fall event on INT1 disabled;
|
|
/// 1: routing of free-fall event on INT1 enabled)
|
|
pub free_fall_event: RegisterBits<1, 4>,
|
|
/// Routing of tap event on INT1. Default value: 0
|
|
/// (0: routing of double-tap event on INT1 disabled;
|
|
/// 1: routing of double-tap event on INT1 enabled)
|
|
pub double_tap_event: RegisterBits<1, 3>,
|
|
/// Routing of 6D event on INT1. Default value: 0
|
|
/// (0: routing of 6D event on INT1 disabled; 1: routing of 6D event on INT1 enabled)
|
|
pub six_degrees_event: RegisterBits<1, 2>,
|
|
/// Routing of tilt event on INT1. Default value: 0
|
|
/// (0: routing of tilt event on INT1 disabled; 1: routing of tilt event on INT1 enabled)
|
|
pub tilt_event: RegisterBits<1, 1>,
|
|
/// Routing of end counter event of timer on INT1. Default value: 0
|
|
/// (0: routing of end counter event of timer on INT1 disabled;
|
|
/// 1: routing of end counter event of timer event on INT1 enabled)
|
|
pub timer_end_counter_event: RegisterBits<1, 0>,
|
|
}
|
|
|
|
impl Md1Cfg {
|
|
pub fn address(&self) -> u8 {
|
|
RegisterAddress::MD1_CFG.address()
|
|
}
|
|
|
|
pub fn value(&self) -> u8 {
|
|
self.inactivity_event.shifted()
|
|
| self.single_tap_event.shifted()
|
|
| self.wake_up_event.shifted()
|
|
| self.free_fall_event.shifted()
|
|
| self.double_tap_event.shifted()
|
|
| self.six_degrees_event.shifted()
|
|
| self.tilt_event.shifted()
|
|
| self.timer_end_counter_event.shifted()
|
|
}
|
|
|
|
pub fn config(&self) -> RegisterConfig {
|
|
RegisterConfig {
|
|
address: self.address(),
|
|
value: self.value(),
|
|
}
|
|
}
|
|
}
|