We can kick start the internal timer outside of the main loop

This commit is contained in:
huntc 2021-10-15 08:12:13 +11:00
parent 16b6c78332
commit 34e9e85819

View file

@ -270,13 +270,16 @@ impl<'d, const N: usize> Saadc<'d, N> {
// Establish mode and sample rate
match mode {
Mode::Timers(sample_rate) => r.samplerate.write(|w| {
unsafe {
w.cc().bits(sample_rate);
w.mode().timers();
}
w
}),
Mode::Timers(sample_rate) => {
r.samplerate.write(|w| {
unsafe {
w.cc().bits(sample_rate);
w.mode().timers();
}
w
});
r.tasks_sample.write(|w| unsafe { w.bits(1) }); // Need to kick-start the internal timer
}
Mode::Task => r.samplerate.write(|w| {
unsafe {
w.cc().bits(0);
@ -334,10 +337,6 @@ impl<'d, const N: usize> Saadc<'d, N> {
r.events_started.reset();
r.intenset.write(|w| w.started().set());
if let Mode::Timers(_) = mode {
r.tasks_sample.write(|w| unsafe { w.bits(1) });
}
let next_buffer = 1 - current_buffer;
r.result
.ptr