Du könntest den Half Transfer Complete Interrupt auch einfach drinnen
lassen, wenn du die Libraries nutzen willst? Die paar Nanosekunden
bringen einen in den wenigsten Fällen um...
temp schrieb:
> Michael S. schrieb:
>> Moin,
>> trotzdem muss ich ja dann den Treiber ändern.
>> Da ich mit CubeMX arbeite, wird diese Änderung dann ja bei jeder
>> Config-Änderung wieder rückgängig gemacht.
>> Das ist zwar beherrschbar aber lästig und irgendwie unsauber.
>>
>> Michael
>
> Wer zwingt dich denn die HAL_DMA_Start_IT aufzurufen? Schreib deine
> eigene Funktion mit anderem Namen und kopiere von mir aus 90% des Codes
> dieser Funktion. Dann sorgt der Linker schon dafür dass die originale
> HAL_DMA_Start_IT auf wundersame Weise aus deinem Projekt verschwindet...
>
> Nachdem alles andere konfiguriert ist, sollte sich das ganze doch wohl
> nur um ein ein paar wenige Bits in wenigen Registern handeln.
>
> Ich kann überhaupt nicht verstehen wie man sich den ganzen HAL-Kram
> überhaupt antun kann. Außer um mal ein paar Samples durchzuspielen.
> Aktuell steige ich in den STM32F334 ein. Das Referenzmanual ist 1121
> Seiten lang und an manchen Stellen nicht gerade logisch und verständlich
> geschrieben. Wenn man das aber halbwegs verstanden hat, weiss man was
> mit dem Controller geht und was nicht. Bei der ganze HAL-Geschichte muss
> man das auch noch aus der spärlichen Doku erahnen. Eigentlich versteht
> man die ohne das Ref-Manual nicht mal. Wozu dann doppelt lernen?
> Allein die HAL_RCC_OscConfig-Funktion besteht aus ca. 250 Zeilen Code.
> Die meisten Projekte setzen am Anfang einmal den Takt und gut ist. Dafür
> braucht man 5 Zeilen Code. Man kann ja der Meinung sein mit dem Einsatz
> von CubeMx spart man sich die Einarbeitung in die Dokumentation, aber
> auf so einen Blindflug hätte ich keinen Bock.
Ich kann überhaupt nicht verstehen wie man den ganzen HAL-Kram nicht
nutzen kann... Diese Libs sind halt nicht dafür gedacht mal eben eine
LED zu toggeln und 2x Bytes via Serieller irgendwohin zu schicken.
Wenn du aber mal 19 Tasks laufen hast, die in in zig Abhängigkeiten das
selbe Modul nutzen wollen, dann wirst du froh sein wenn die Library das
entsprechende Modul an den richtigen Stellen mal eben vor einem Zugriff
schützt... und das ganze ohne sich darüber Gedanken machen zu müssen.
Ich persönlich wähl auch oft den Mittelweg und lass mir meine Peripherie
etwa initialisieren, bevor ich mich selbst Stunden quälen muss. Letztes
Beispiel hier ist etwa die neue SAI-Schnittstelle. Ja ich will einen
64bit I2S-Frame mit einem 32bit langen Wordselect und einen 2048kHz
Bitclock, der mit 16bit Daten schickt. Wozu dabei Bit13-16 des
SAI1-BlockA CR2 Registers dienen ist mir vollkommen egal.