Forum: Mikrocontroller und Digitale Elektronik hal uwtick stm32 nur 32bit?


von MAX M. (maxmax123)


Lesenswert?

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?

von Stefan F. (Gast)


Angehängte Dateien:

Lesenswert?

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.

von MAX M. (maxmax123)


Lesenswert?

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)

von Kevin M. (arduinolover)


Lesenswert?

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
Noch kein Account? Hier anmelden.