mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-28 04:40:39 +00:00
Enable oversampling for ADC v3
This commit is contained in:
parent
b9d90d7cbb
commit
79fbf214cc
@ -1,5 +1,7 @@
|
||||
use cfg_if::cfg_if;
|
||||
use pac::adc::vals::Dmacfg;
|
||||
#[cfg(adc_v3)]
|
||||
use pac::adc::vals::{OversamplingRatio, OversamplingShift, Rovsm, Trovs};
|
||||
|
||||
use super::{
|
||||
blocking_delay_us, Adc, AdcChannel, AnyAdcChannel, Instance, Resolution, RxDma, SampleTime, SealedAdcChannel,
|
||||
@ -470,6 +472,23 @@ impl<'d, T: Instance> Adc<'d, T> {
|
||||
T::regs().cfgr2().modify(|reg| reg.set_ovse(enable));
|
||||
}
|
||||
|
||||
#[cfg(adc_v3)]
|
||||
pub fn enable_regular_oversampling_mode(&mut self, mode: Rovsm, trig_mode: Trovs, enable: bool) {
|
||||
T::regs().cfgr2().modify(|reg| reg.set_trovs(trig_mode));
|
||||
T::regs().cfgr2().modify(|reg| reg.set_rovsm(mode));
|
||||
T::regs().cfgr2().modify(|reg| reg.set_rovse(enable));
|
||||
}
|
||||
|
||||
#[cfg(adc_v3)]
|
||||
pub fn set_oversampling_ratio(&mut self, ratio: OversamplingRatio) {
|
||||
T::regs().cfgr2().modify(|reg| reg.set_ovsr(ratio));
|
||||
}
|
||||
|
||||
#[cfg(adc_v3)]
|
||||
pub fn set_oversampling_shift(&mut self, shift: OversamplingShift) {
|
||||
T::regs().cfgr2().modify(|reg| reg.set_ovss(shift));
|
||||
}
|
||||
|
||||
fn set_channel_sample_time(_ch: u8, sample_time: SampleTime) {
|
||||
cfg_if! {
|
||||
if #[cfg(any(adc_g0, adc_u0))] {
|
||||
|
Loading…
x
Reference in New Issue
Block a user