Ich verwende CubeMX, um Code für meinen NucleoF303 zu generieren. Ich bin etwas verwirrt, wie man die Impulsbreite eines Timers im PWM-Modus einstellt.
Zuvor (unter Verwendung von F4) gab es ein __HAL_TIM_SetCompare-Makro in der Datei stm32fxxx_hal_tim.h.
Aber das gibt es nicht. Soll ich die Einschaltdauer anders einstellen?
Natürlich kann ich die CCRx-Register einfach direkt setzen. Das funktioniert. Aber wenn ich eine HAL mit viel Abstraktion verwenden werde, wie es Cube zu sein scheint, würde ich zumindest gerne wissen, wie ich sie verwenden möchte. Auch wenn ich es nicht tue.
Nicht wirklich ein Code für diese Frage. Aber hier ist mein aktuelles Commit, falls es nützlich ist: https://github.com/c-herring/Sumo2017_NucleoF303/tree/221dc57a305ccd64a4b98726df3cce02720b280b
Beifall!
Zuvor (unter Verwendung von F4) gab es ein __HAL_TIM_SetCompare-Makro in der Datei stm32fxxx_hal_tim.h.
Das ist tatsächlich schon einige Zeit her. Ich habe in einem alten Projektverzeichnis eine Kopie von STM32CubeF4 V1.6.0 (veröffentlicht am 28. Mai 2015) gefunden, die bereits die folgende Alias-Definition enthält
Inc/Legacy/stm32_hal_legacy.h:#define __HAL_TIM_SetCompare __HAL_TIM_SET_COMPARE
Noch tiefer graben, heißt es in der Beschreibung von 1.4.0
STM32CubeF4 Firmwarepaket V1.4.0 / 26. Dezember 2014
Hauptänderungen
Wartungsversion zur Behebung bekannter Fehler und Implementierung mehrerer Verbesserungen
Umbenennung von HAL-Makros und -Literalen, um die Kompatibilität mit allen STM32-Serien sicherzustellen, Abwärtskompatibilität wird dank der neu hinzugefügten Datei stm32_hal_legacy.h unter /Inc/Legacy beibehalten
Es muss also die Zeit gewesen sein, in der __HAL_TIM_SetCompare
zugunsten von verworfen wurde __HAL_TIM_SET_COMPARE
.
Sie sollten trotzdem die Alias-Definition erhalten, da alle HAL-Header stm32_hal_legacy.h
.
Bence Kaulics
__HAL_TIM_SetCompare
Dadurch wird das CCRx-Register ohnehin direkt gesetzt. Also meiner Meinung nach ist es jetzt in Ordnung.