adc: merge acquire_buffer and release_buffer again
This commit is contained in:
parent
b1301a6184
commit
34d59dac5d
17
src/adc.rs
17
src/adc.rs
|
@ -185,9 +185,7 @@ macro_rules! adc_input {
|
||||||
///
|
///
|
||||||
/// # Returns
|
/// # Returns
|
||||||
/// A reference to the underlying buffer that has been filled with ADC samples.
|
/// A reference to the underlying buffer that has been filled with ADC samples.
|
||||||
pub fn acquire_buffer(
|
pub fn acquire_buffer(&mut self) -> &[u16; SAMPLE_BUFFER_SIZE] {
|
||||||
&mut self,
|
|
||||||
) -> &'static mut [u16; SAMPLE_BUFFER_SIZE] {
|
|
||||||
// Wait for the transfer to fully complete before continuing.
|
// Wait for the transfer to fully complete before continuing.
|
||||||
// Note: If a device hangs up, check that this conditional is passing correctly, as there is
|
// Note: If a device hangs up, check that this conditional is passing correctly, as there is
|
||||||
// no time-out checks here in the interest of execution speed.
|
// no time-out checks here in the interest of execution speed.
|
||||||
|
@ -200,18 +198,9 @@ macro_rules! adc_input {
|
||||||
let (prev_buffer, _) =
|
let (prev_buffer, _) =
|
||||||
self.transfer.next_transfer(next_buffer).unwrap();
|
self.transfer.next_transfer(next_buffer).unwrap();
|
||||||
|
|
||||||
prev_buffer
|
self.next_buffer.replace(prev_buffer); // .unwrap_none() https://github.com/rust-lang/rust/issues/62633
|
||||||
}
|
|
||||||
|
|
||||||
/// Release a buffer of ADC samples to the pool.
|
self.next_buffer.as_ref().unwrap()
|
||||||
///
|
|
||||||
/// # Args
|
|
||||||
/// * `next_buffer` - Buffer of ADC samples to be re-used.
|
|
||||||
pub fn release_buffer(
|
|
||||||
&mut self,
|
|
||||||
next_buffer: &'static mut [u16; SAMPLE_BUFFER_SIZE],
|
|
||||||
) {
|
|
||||||
self.next_buffer.replace(next_buffer); // .unwrap_none() https://github.com/rust-lang/rust/issues/62633
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
|
@ -763,9 +763,6 @@ const APP: () = {
|
||||||
dac_samples[channel][sample] = y as i16 as u16 ^ 0x8000;
|
dac_samples[channel][sample] = y as i16 as u16 ^ 0x8000;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
let [adc0, adc1] = adc_samples;
|
|
||||||
c.resources.adcs.0.release_buffer(adc0);
|
|
||||||
c.resources.adcs.0.release_buffer(adc1);
|
|
||||||
let [dac0, dac1] = dac_samples;
|
let [dac0, dac1] = dac_samples;
|
||||||
c.resources.dacs.0.release_buffer(dac0);
|
c.resources.dacs.0.release_buffer(dac0);
|
||||||
c.resources.dacs.1.release_buffer(dac1);
|
c.resources.dacs.1.release_buffer(dac1);
|
||||||
|
|
Loading…
Reference in New Issue