Ich schreibe gerade eine Firmware für meinen LED Cube (16³) und versuche mit DMA periodisch 16 HALFWORDs (ein 16² Layer) ins SPI modul zu schieben. Ich bin relativ neu mit diesem HAL-lib^^ Der timer funktioniert, breakpoints werden dort aufgerufen, aber spi gibt keine Daten aus. Wenn ich SPI manuell benutze (SPI_Transmit...) kommt was raus, also muss es irgendwie an meiner Einrichtung vom DMA Modul liegen (oder so?). Code ist im Anhang^^ Kann es etwas mit der Reihenfolge zu tun haben, in der die init Funktionen aufgerufen werden?
Gast
#4315698
Hallo Kenne mich mit der HAL nicht aus, aber müsstest Du die peripherien nich noch aktivieren, so in der Grössenordnung: SPI_Cmd(SPI1, ENABLE); DMA_Cmd(DMA1, ENABLE); DMA_Cmd(DMA2, ENABLE); Gruss derKer
hatte ich schon ausprobiert, hat nix gebracht. diese makros werden aber auch in der dma_transfer_dma funktion aufgerufen, also...
Gast
#4316259
Schau' 'mal da, ob's Uwe besser kann: http://mikrocontroller.bplaced.net/wordpress/?page_id=4593
das nutzt das alte std_periph library (mit welchem der ganze kram auch bei mir funktioniert, aber ich will zum HAL übergehen, damit ich bei neueren chip generationen nicht hängen bleibe)
Gast
#4318320
>das nutzt das alte std_periph library (mit welchem der ganze kram auch
Aber als Vergleichsobjekt müsste es doch taugen?
ich habe das was ich hier will ja auch schon mit std_periph am laufen (rgb cube^^), aber will den neuen cube mit HAL programmieren, um mal ein "intro" zu HAL zu haben^^
Hi! Habe mein Projekt auch mal auf HAL geportet. Vor ein paar Wochen bin ich wieder zurück zur SPL gekommen, HAL ist für mein Projekt kontraproduktiv, weil es zu viele Dinge selber übernimmt. Beispielsweise die Interrupt Routinen sind m. E. nach ein Horror. Was gut ist an der HAL, sind auf jeden Fall die Makros und viele standard Funktionen. Die kann man sich aber notfalls auch in eine kleine Helper-Klasse einbinden und nutzen
Antwort schreiben
Bitte melde dich an, um einen Beitrag zu schreiben.