Holger schrieb:
> Wieso brauch ich einen Delay bevor ich was in das ARR bzw. PSC Register
> schreibe.
Nachdem du den Timer im RCC aktiviert hast, dauert es ein paar Takte bis 
sich das auswirkt, weil die CPU schneller als der Bus ist. Füge 
dazwischen ein
ein, damit die CPU die Vervollständigung des Schreibzugriffs abwartet.
Holger schrieb:
> ch bin nicht sicher ob der Name fuer den Interrupt Handler korrekt ist
Der korrekte Name lautet "TIM8_TRG_COM_TIM14_IRQHandler". Ist im Startup 
Code definiert:
https://github.com/STMicroelectronics/cmsis_device_h7/blob/13ba9da797a30e1563a8795f974425fb26dd0457/Source/Templates/gcc/startup_stm32h747xx.s#L191
Der Name kommt daher, dass sich manchmal mehrere Peripherals den selben 
Interrupt teilen. Im Handler musst du dann prüfen, ob der gewünschte 
Interrupt aufgetreten ist.
Schreibe den Interrupt besser so:
| 1 | void TIM14_IRQHandler(void) {
 | 
| 2 |   if (TIM14->SR & TIM_SR_UIF) {
 | 
| 3 |     TIM14->SR = ~(TIM_SR_UIF);
 | 
| 4 | 
 | 
| 5 |     digitalWrite(LED_BUILTIN, !digitalRead(LED_BUILTIN));
 | 
| 6 |   }
 | 
| 7 | }
 | 
Man sollte das UIF Flag so schnell wie möglich löschen, weil auch dieser 
Zugriff etwas dauert; macht man das am Ende der ISR, kann die ISR 
eventuell direkt noch einmal auslösen. Außerdem ist kein 
Read-Modify-Write ( "&=" ) nötig, es reicht einfach der direkte 
Schreibzugriff, weil die Bits im Register als "rc_w0" definiert sind (1 
schreiben = keine Wirkung, 0 schreiben = löschen).