aboutsummaryrefslogtreecommitdiff
path: root/embassy-stm32/src/timer
diff options
context:
space:
mode:
authorRaulIQ <[email protected]>2025-10-02 16:13:03 +0300
committerRaulIQ <[email protected]>2025-10-02 16:13:03 +0300
commit73b1d46e2b7eacda184f1d63cd0fcedf990e5fda (patch)
treee0dbe24bba323b64bf9676fb923e7fdc86b37f82 /embassy-stm32/src/timer
parentf0d27bcb52a3fa93557e625831d659bc00eb8f49 (diff)
fix: correct DMA configuration and registers in receive_waveform
Diffstat (limited to 'embassy-stm32/src/timer')
-rw-r--r--embassy-stm32/src/timer/input_capture.rs11
1 files changed, 7 insertions, 4 deletions
diff --git a/embassy-stm32/src/timer/input_capture.rs b/embassy-stm32/src/timer/input_capture.rs
index cbb4bb1d4..d8dbdee66 100644
--- a/embassy-stm32/src/timer/input_capture.rs
+++ b/embassy-stm32/src/timer/input_capture.rs
@@ -165,10 +165,13 @@ impl<'d, T: GeneralInstance4Channel> InputCapture<'d, T> {
165 let req = dma.request(); 165 let req = dma.request();
166 166
167 let original_enable_state = self.is_enabled(M::CHANNEL); 167 let original_enable_state = self.is_enabled(M::CHANNEL);
168 let original_update_dma_state = self.inner.get_update_dma_state(); 168 let original_cc_dma_enable_state = self.inner.get_cc_dma_enable_state(M::CHANNEL);
169 169
170 if !original_update_dma_state { 170 self.inner.set_input_ti_selection(M::CHANNEL, InputTISelection::Normal);
171 self.inner.enable_update_dma(true); 171 self.inner.set_input_capture_mode(M::CHANNEL, InputCaptureMode::BothEdges);
172
173 if !original_cc_dma_enable_state {
174 self.inner.set_cc_dma_enable_state(M::CHANNEL, true);
172 } 175 }
173 176
174 if !original_enable_state { 177 if !original_enable_state {
@@ -181,7 +184,7 @@ impl<'d, T: GeneralInstance4Channel> InputCapture<'d, T> {
181 Transfer::new_read( 184 Transfer::new_read(
182 dma, 185 dma,
183 req, 186 req,
184 self.inner.regs_1ch().ccr(M::CHANNEL.index()).as_ptr() as *mut u16, 187 self.inner.regs_gp16().ccr(M::CHANNEL.index()).as_ptr() as *mut u16,
185 buf, 188 buf,
186 TransferOptions::default(), 189 TransferOptions::default(),
187 ) 190 )