Gast
#5242428
Auf einem STM32F7 mit 160 MHz habe ich einen externen Interrupt mit Handler geschrieben, der innerhalb von 700 ns ein bestimmtes Signal ausgeben soll. Dazu habe ich alle verwendeten Funktionen ins ITCM-RAM gelegt und verzichte auf den HAL.
1 | |
2 | |
3 | |
4 | |
5 | |
6 | |
7 | |
8 | |
9 | |
10 | |
Innerhalb von 3 Sekunden wird der Interrupt ca. 100.000 Mal ausgelöst und funktioniert auch so wie gewünscht. Aber in 20 Fällen wird die Interrupt-Auslösung um ca. 350 ns verzögert, sodass das Zeitlimit gerissen wird. Ich nehme an, die Verzögerung liegt an den anderen Aufgaben, die der STM32 zu erledigen hat. Allerdings verwende ich bisher keine Peripherie außer GPIO und SDMMC1, wobei letztere inaktiv ist. Wie kann ich diese Verzögerungen verhindern? Kann ich weitere Teile des STM32, insb. bestimmte Interrupts (SysTick?) abschalten?
