Hallo, ich habe gerade einfach eine Frage zum Verständnis. Was ist der Unterschied zwischen einer Wartefunktion wie z.B. HAL_Delay (200) und der Funktion vTaskDelay(200) die ich hier verwendet habe? Könnte ich in dem Code, vTaskDelay auch durch HAL_Delay ersetzen? vielen Dank im Vorraus :)
Entenfleisch schrieb: > Könnte ich in dem Code, vTaskDelay auch durch HAL_Delay ersetzen? Das kommt drauf an, was sich hinter diesen beiden Funktionen verbirgt. Hast du schon mal die Dokumentation dazu gelesen?
Entenfleisch schrieb: > Hallo, > > ich habe gerade einfach eine Frage zum Verständnis. > > > Was ist der Unterschied zwischen einer Wartefunktion wie z.B. HAL_Delay > (200) und der Funktion vTaskDelay(200) die ich hier verwendet habe? Warum schaust Du nicht in den Sourcecode?
1 | __weak void HAL_Delay(uint32_t Delay) |
2 | {
|
3 | uint32_t tickstart = 0; |
4 | tickstart = HAL_GetTick(); |
5 | while((HAL_GetTick() - tickstart) < Delay) |
6 | {
|
7 | }
|
8 | }
|
> Könnte ich in dem Code, vTaskDelay auch durch HAL_Delay ersetzen?
Ja. Aber HAL_Delay blockiert den Prozessor und somit die anderen Tasks.
Bei vTaskDelay arbeiten die anderen Tasks weiter.
Also: HAL_Delay ist Sch....
Beitrag #5712492 wurde von einem Moderator gelöscht.
Beitrag #5712501 wurde von einem Moderator gelöscht.
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.
