Gast
#3342443
Hallo! Für meine Bachelor-Arbeit muss ich ein Sinus-Signal mit dem LPC 1769 generieren. Dieses möchte ich zunächst in den SRAM schreiben, um es dann über DMA an den DAC zu übertragen. In einem Beispiel von NXP wird dazu der Timer des DAC verwendet, welcher, bei Null angelangt, einen DMA-Request des DAC auslöst. Dies geschieht, indem ein entsprechendes Request-Bit im Control-Register des DAC gesetzt wird. Nach der Übertragung wird ein Terminal Count Interrupt im DMA-Controller ausgelöst und danach der entsprechende Kanal initialisiert und konfiguriert. Letztendlich werden die Daten zyklisch übertragen. So verstehe ich das zumindest. Ich würde nun diese Übertraung gerne ohne Timer durchführen, da durch diesen die Frequenz der Signale gedrückt wird. Ansatt also den Timer zu verwenden, wollte ich den DMA-Request per Hand auslösen, indem ich das Request-Bit setze. Ist es überhaupt möglich, das so zu machen? Im Anhang ist der Code des Beispiels. In der Datei "dac_test_.c" habe ich den alternativen Code eingefügt. Dabei treten die folgenden Probleme auf: 1. Das Request-Bit wird in der main-Routine wieder zurückgesetzt, obwohl dies laut dem Manual (S.584) nur passiert, falls der DAC einen Wert erhält. 2. Der Terminal Count Interrupt wird mit dem alternativen Code trotzdem nie ausgelöst, was darauf hindeutet, dass keine Übertragung zustande kommt. Worin besteht mein Fehler? Viele Grüße, Robert