Mir ist aufgefallen, dass im STM32 HAL uwtick nur eine 32 bit variable ist. Diese würde nach ca 49 tagen überlaufen (1ms tick) Foglende Fragen: 1. kann im cube dies auf 64 umgestellt werden? 2. wenn ich die HAL uwtick im user code nicht nutze und mit einem Timer meine eigene 64bit variable generiere und nutze: Besteht die Gefahr, dass sich das HAL selbst abschiesst beim uwtick overflow?
Gast
#7132296
Doku lesen! Du kannst diese Funktion ersetzen um hoch zu zählen, was auch immer du willst. Wenn du die Variable uwtick nicht mehr verwendest, musst du allerdings auch HAL_Delay() überschreiben.
Danke. Ja kann somit am besten meine eigene 64bit variable sowie paralell dazu die uwtick hochzählen lassen (Dies kann elegant mit dem überschreiben diesr Funktion gemacht werden, oder auch anders). Die definition der uwtick ist aber leider nicht im user editablen bereich weshalb die 32 bit bleibt. Da uwtick selbst im HAL intern verwendet wird (HAL_timeout etc) bin ich besorgt über mögliche Probleme im zusammenhang mit einem Überlauf der uwtick im HAL selbst. Also zb. wenn uwtick überläuft wenn gerade in einer HAL Funktion mit timeout ist (zb. SPI Transmit/Receive)
Statt Probleme zu beheben wo eigentlich keine sind, könntest du deine Sachen auch anständig implementieren. Um ein Timing zu Erzeugen gibt es mehrere Methoden die Überlauf sicher sind. Schafft dir HAL ja auch.
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.
