Forum: Compiler & IDEs DMA-Controller


von avrprogger (Gast)


Lesenswert?

Hi, weiß jemand worauf die Zeiger zeigen?

unsigned char data[512];

// das Array wird mit irgend welchen Daten gefüllt
// ...

*AT91C_SPI_TPR = data;                      // Adresse des Arrays
*AT91C_SPI_TCR = sizeof(data);              // Anzahl der zu 
übertragenden Datenworte (hier Bytes)
*AT91C_SPI_PTCR = AT91C_PDC_TXTEN;          // Transfer starten

while(! (*AT91C_SPI_SR & AT91C_SPI_ENDTX)); // auf das Ende der 
Übertragung warten

*AT91C_SPI_PTCR = AT91C_PDC_TXTDIS;         // DMA deaktivieren

Quelle: Artikel: "DMA-Controller" hier im Netz

Vielen Dank!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

avrprogger schrieb:
> Hi, weiß jemand worauf die Zeiger zeigen?

Na, auf die den DMA-Controller steuernden Register. Näheres wirst Du im 
Programmierhandbuch des verwendeten ARMs* von Atmel finden können.

Immerhin steht direkt über dem von Dir zitierten Codeschnipsel das 
hier:
1
Beim AT91SAM7 sieht das unter Verwendung des sogenannten 
2
"Peripheral DMA Controller" (PDC) z. B. so aus:

*) wofür sonst mag das AT91C_ in den Registernamen stehen?

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
Noch kein Account? Hier anmelden.