Guten Tag,
ich habe gerade ein bisse "Probecode" geschrieben um ein paar Konzepte für mein Programm (auf einem STM32 Mikrocontroller) auszuprobieren. Das sieht in etwa so aus, ein UART Receive Interrupt wird ausgeführt und in dem Callback eine Funktion aufgerufen, etwa so:
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart) {
Testfunktion(int count);
}
Nun soll die Testfunktion die aktuelle Zeit, seit der das Programm läuft, oder eine Zeitmessung der Interruptdauer mehrmals ("count"-mal) als Hex-Code über die serielle Verbindung auf einer Konsole am Computer ausgeben. Die Zeit beziehe ich hierbei mit HAL_GetTick().
Die Ausgabe funktioniert wunderbar, nur leider ändert sich die Zeit nie, es gibt immer den selben Wert aus.
Kann mir jemand sagen an was das liegt oder wie ich generell Zeitmessungen (nicht unbedingt von Start des Programms an) in Interrupts handhabe? Ich dachte, dass HAL_GetTick() vielleicht selbst über einen Interrupt läuft und probiert die Priority von System tick Timer zu erhöhen um das Problem zu lösen (keine Ahnung ob das Sinn ergibt, war nur ein Schuss ins Blaue).
Über Antworten würde ich mich sehr freuen!