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?
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.
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.