aboutsummaryrefslogtreecommitdiff
path: root/examples
diff options
context:
space:
mode:
authormichel <[email protected]>2024-10-10 14:53:04 +0200
committermichel <[email protected]>2024-11-29 17:58:35 +0100
commita5b34a7980edaba5d8de05c68a48972dd9239f75 (patch)
treed22db4b8b504ff04b07d36cf4179b84c057c9475 /examples
parent721c6820d4a6e3bbf2546997205a32975e6bad8b (diff)
stm32 multipin examples: remove check for group status since we are using the async pending method
Diffstat (limited to 'examples')
-rw-r--r--examples/stm32l0/src/bin/tsc_multipin.rs28
-rw-r--r--examples/stm32l4/src/bin/tsc_multipin.rs28
2 files changed, 4 insertions, 52 deletions
diff --git a/examples/stm32l0/src/bin/tsc_multipin.rs b/examples/stm32l0/src/bin/tsc_multipin.rs
index 6170d0799..85feb50b0 100644
--- a/examples/stm32l0/src/bin/tsc_multipin.rs
+++ b/examples/stm32l0/src/bin/tsc_multipin.rs
@@ -74,26 +74,6 @@ bind_interrupts!(struct Irqs {
74 TSC => InterruptHandler<embassy_stm32::peripherals::TSC>; 74 TSC => InterruptHandler<embassy_stm32::peripherals::TSC>;
75}); 75});
76 76
77const MAX_GROUP_STATUS_READ_ATTEMPTS: usize = 10;
78
79async fn read_touch_values(
80 touch_controller: &mut tsc::Tsc<'_, peripherals::TSC, mode::Async>,
81 tsc_acquisition_bank: &TscAcquisitionBank,
82) -> Option<TscAcquisitionBankReadings> {
83 for _ in 0..MAX_GROUP_STATUS_READ_ATTEMPTS {
84 let status = touch_controller.get_acquisition_bank_status(tsc_acquisition_bank);
85 if status.all_complete() {
86 let r = touch_controller.get_acquisition_bank_values(tsc_acquisition_bank);
87 return Some(r);
88 } else {
89 info!("Acquisition still ongoing");
90 Timer::after_millis(1).await;
91 }
92 }
93 info!("Acquisition failed after {} attempts", MAX_GROUP_STATUS_READ_ATTEMPTS);
94 None
95}
96
97const SENSOR_THRESHOLD: u16 = 35; 77const SENSOR_THRESHOLD: u16 = 35;
98 78
99async fn acquire_sensors( 79async fn acquire_sensors(
@@ -174,13 +154,9 @@ async fn main(_spawner: embassy_executor::Spawner) {
174 154
175 loop { 155 loop {
176 acquire_sensors(&mut touch_controller, &bank1).await; 156 acquire_sensors(&mut touch_controller, &bank1).await;
177 let readings1: TscAcquisitionBankReadings = read_touch_values(&mut touch_controller, &bank1) 157 let readings1 = touch_controller.get_acquisition_bank_values(&bank1);
178 .await
179 .expect("should be able to read values for bank 1");
180 acquire_sensors(&mut touch_controller, &bank2).await; 158 acquire_sensors(&mut touch_controller, &bank2).await;
181 let readings2: TscAcquisitionBankReadings = read_touch_values(&mut touch_controller, &bank2) 159 let readings2 = touch_controller.get_acquisition_bank_values(&bank1);
182 .await
183 .expect("should be able to read values for bank 2");
184 160
185 let mut touched_sensors_count = 0; 161 let mut touched_sensors_count = 0;
186 for reading in readings1.iter() { 162 for reading in readings1.iter() {
diff --git a/examples/stm32l4/src/bin/tsc_multipin.rs b/examples/stm32l4/src/bin/tsc_multipin.rs
index 20a559514..f26a6f4eb 100644
--- a/examples/stm32l4/src/bin/tsc_multipin.rs
+++ b/examples/stm32l4/src/bin/tsc_multipin.rs
@@ -70,26 +70,6 @@ bind_interrupts!(struct Irqs {
70 TSC => InterruptHandler<embassy_stm32::peripherals::TSC>; 70 TSC => InterruptHandler<embassy_stm32::peripherals::TSC>;
71}); 71});
72 72
73const MAX_GROUP_STATUS_READ_ATTEMPTS: usize = 10;
74
75async fn read_touch_values(
76 touch_controller: &mut tsc::Tsc<'_, peripherals::TSC, mode::Async>,
77 tsc_acquisition_bank: &TscAcquisitionBank,
78) -> Option<TscAcquisitionBankReadings> {
79 for _ in 0..MAX_GROUP_STATUS_READ_ATTEMPTS {
80 let status = touch_controller.get_acquisition_bank_status(tsc_acquisition_bank);
81 if status.all_complete() {
82 let r = touch_controller.get_acquisition_bank_values(tsc_acquisition_bank);
83 return Some(r);
84 } else {
85 info!("Acquisition still ongoing");
86 Timer::after_millis(1).await;
87 }
88 }
89 info!("Acquisition failed after {} attempts", MAX_GROUP_STATUS_READ_ATTEMPTS);
90 None
91}
92
93const SENSOR_THRESHOLD: u16 = 20; 73const SENSOR_THRESHOLD: u16 = 20;
94 74
95async fn acquire_sensors( 75async fn acquire_sensors(
@@ -169,13 +149,9 @@ async fn main(_spawner: embassy_executor::Spawner) {
169 149
170 loop { 150 loop {
171 acquire_sensors(&mut touch_controller, &bank1).await; 151 acquire_sensors(&mut touch_controller, &bank1).await;
172 let readings1: TscAcquisitionBankReadings = read_touch_values(&mut touch_controller, &bank1) 152 let readings1 = touch_controller.get_acquisition_bank_values(&bank1);
173 .await
174 .expect("should be able to read values for bank 1");
175 acquire_sensors(&mut touch_controller, &bank2).await; 153 acquire_sensors(&mut touch_controller, &bank2).await;
176 let readings2: TscAcquisitionBankReadings = read_touch_values(&mut touch_controller, &bank2) 154 let readings2 = touch_controller.get_acquisition_bank_values(&bank2);
177 .await
178 .expect("should be able to read values for bank 2");
179 155
180 let mut touched_sensors_count = 0; 156 let mut touched_sensors_count = 0;
181 for reading in readings1.iter().chain(readings2.iter()) { 157 for reading in readings1.iter().chain(readings2.iter()) {