Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependents: FirstTest WaveSim IO-dma-memmem DACDMAfuncgenlib ... more
Diff: example1.cpp
- Revision:
- 0:c409efd8df78
- Child:
- 4:67f327b9278e
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/example1.cpp Tue Nov 23 14:50:39 2010 +0000
@@ -0,0 +1,71 @@
+#ifdef COMPILE_EXAMPLE_CODE_MODDMA
+
+#include "mbed.h"
+#include "MODDMA.h"
+#include "MODSERIAL.h"
+
+DigitalOut led1(LED1);
+DigitalOut led2(LED2);
+DigitalOut led3(LED3);
+DigitalOut led4(LED4);
+MODDMA dma;
+MODSERIAL pc(USBTX, USBRX);
+//Serial pc(USBTX, USBRX);
+
+void dmaCallback(void) {
+ led2 = 1;
+}
+
+void C0callback(void) {
+ MODDMA_Config *config = dma.getConfig();
+ dma.haltAndWaitChannelComplete( (MODDMA::CHANNELS)config->channelNum());
+ dma.Disable( (MODDMA::CHANNELS)config->channelNum() );
+ if (dma.irqType() == MODDMA::TcIrq) {
+ led3 = 1;
+ dma.clearTcIrq();
+ }
+ if (dma.irqType() == MODDMA::ErrIrq) {
+ led4 = 1;
+ dma.clearErrIrq();
+ }
+}
+
+int main() {
+ char s[] = "**DMA** ABCDEFGHIJKLMNOPQRSTUVWXYZ **DMA**";
+
+ pc.baud(115200);
+
+ dma.isrIntTCStat.attach(&dmaCallback);
+
+ MODDMA_Config *config = new MODDMA_Config;
+ config
+ ->channelNum ( MODDMA::Channel_0 )
+ ->srcMemAddr ( (uint32_t) &s )
+ //->dstMemAddr ( 0 )
+ ->transferSize ( sizeof(s) )
+ ->transferType ( MODDMA::m2p )
+ //->transferWidth ( 0 )
+ //->srcConn ( 0 )
+ ->dstConn ( MODDMA::UART0_Tx )
+ //->dmaLLI ( 0 )
+ ;//->isrIntTCStat->attach(&C0callback)
+ ; // config end
+
+ dma.Setup(config);
+
+ //dma.Enable( MODDMA::Channel_0 );
+ dma.Enable( config->channelNum() );
+
+ pc.printf("123456789\r\n");
+ pc.printf("\r\nRESERVED9 = %p", &LPC_SC->RESERVED9);
+ pc.printf("\r\nOther = %p", &LPC_UART0->DMAREQSEL);
+
+ while (1) {
+ led1 = !led1;
+ wait(0.2);
+ led1 = !led1;
+ wait(0.2);
+ }
+}
+
+#endif