mirror of
https://github.com/embassy-rs/embassy.git
synced 2025-09-30 22:01:07 +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 cfg_if::cfg_if;
|
||||||
use pac::adc::vals::Dmacfg;
|
use pac::adc::vals::Dmacfg;
|
||||||
|
#[cfg(adc_v3)]
|
||||||
|
use pac::adc::vals::{OversamplingRatio, OversamplingShift, Rovsm, Trovs};
|
||||||
|
|
||||||
use super::{
|
use super::{
|
||||||
blocking_delay_us, Adc, AdcChannel, AnyAdcChannel, Instance, Resolution, RxDma, SampleTime, SealedAdcChannel,
|
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));
|
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) {
|
fn set_channel_sample_time(_ch: u8, sample_time: SampleTime) {
|
||||||
cfg_if! {
|
cfg_if! {
|
||||||
if #[cfg(any(adc_g0, adc_u0))] {
|
if #[cfg(any(adc_g0, adc_u0))] {
|
||||||
|
Loading…
x
Reference in New Issue
Block a user