58 lines
2.2 KiB
Rust
58 lines
2.2 KiB
Rust
|
//! INT2 pad control register (r/w).
|
|||
|
|
|||
|
use crate::lsm6ds3tr::{RegisterAddress, RegisterBits, RegisterConfig, RegisterValue};
|
|||
|
|
|||
|
/// INT2 pad control register (r/w).
|
|||
|
/// Each bit in this register enables a signal to be carried through INT2. The pad’s output will supply the OR combination of the selected signals.
|
|||
|
#[derive(Default)]
|
|||
|
pub struct Int2Ctrl {
|
|||
|
/// Pedometer step recognition interrupt on delta time(1) enable on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub pedometer_step_recognition_delta_time: RegisterBits<1, 7>,
|
|||
|
/// Step counter overflow interrupt enable on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub step_counter_overflow: RegisterBits<1, 6>,
|
|||
|
/// FIFO full flag interrupt enable on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub fifo_full: RegisterBits<1, 5>,
|
|||
|
/// FIFO overrun interrupt on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub fifo_overrun: RegisterBits<1, 4>,
|
|||
|
/// FIFO threshold interrupt on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub fifo_threshold: RegisterBits<1, 3>,
|
|||
|
/// Temperature Data Ready on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub temperature_data_ready: RegisterBits<1, 2>,
|
|||
|
/// Gyroscope Data Ready on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub gyroscope_data_ready: RegisterBits<1, 1>,
|
|||
|
/// Accelerometer Data Ready on INT2 pad. Default value: 0
|
|||
|
/// (0: disabled; 1: enabled)
|
|||
|
pub accelerometer_data_ready: RegisterBits<1, 0>,
|
|||
|
}
|
|||
|
|
|||
|
impl Int2Ctrl {
|
|||
|
pub fn address(&self) -> u8 {
|
|||
|
RegisterAddress::INT2_CTRL.address()
|
|||
|
}
|
|||
|
|
|||
|
pub fn value(&self) -> u8 {
|
|||
|
self.pedometer_step_recognition_delta_time.shifted()
|
|||
|
| self.step_counter_overflow.shifted()
|
|||
|
| self.fifo_full.shifted()
|
|||
|
| self.fifo_overrun.shifted()
|
|||
|
| self.fifo_threshold.shifted()
|
|||
|
| self.temperature_data_ready.shifted()
|
|||
|
| self.gyroscope_data_ready.shifted()
|
|||
|
| self.accelerometer_data_ready.shifted()
|
|||
|
}
|
|||
|
|
|||
|
pub fn config(&self) -> RegisterConfig {
|
|||
|
RegisterConfig {
|
|||
|
address: self.address(),
|
|||
|
value: self.value(),
|
|||
|
}
|
|||
|
}
|
|||
|
}
|