Skip to content

Commit da953d6

Browse files
committed
[adc] Fix shared IRQ and flags issues on STM32
1 parent 660a3d9 commit da953d6

File tree

2 files changed

+2
-4
lines changed

2 files changed

+2
-4
lines changed

src/modm/platform/adc/stm32/adc_impl.hpp.in

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -250,7 +250,5 @@ modm::platform::Adc{{ id }}::getInterruptFlags()
250250
void
251251
modm::platform::Adc{{ id }}::acknowledgeInterruptFlags(const InterruptFlag_t flags)
252252
{
253-
// Flags are cleared by writing a one to the flag position.
254-
// Writing a zero is ignored.
255-
ADC{{ per }}->SR = flags.value;
253+
ADC{{ per }}->SR = ~flags.value;
256254
}

src/modm/platform/adc/stm32/module.lb

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -76,7 +76,7 @@ def prepare(module, options):
7676
props["instances"] = []
7777

7878
if target["family"] in ["f2", "f4", "f7"]:
79-
props["shared_irqs"] = {"ADC": listify(device.get_driver("adc")["instance"])}
79+
props["shared_irqs"] = {"ADC": listify([int(i) for i in device.get_driver("adc")["instance"]])}
8080
props["shared_irq_ids"] = props["shared_irqs"]["ADC"]
8181
else:
8282
shared_irqs = [v["name"] for v in device.get_driver("core")["vector"]]

0 commit comments

Comments
 (0)