MODDMA GPDMA Controller New features: transfer pins to memory buffer under periodic timer control and send double buffers to DAC

Dependents:   FirstTest WaveSim IO-dma-memmem DACDMAfuncgenlib ... more

Files at this revision

API Documentation at this revision

Comitter:
AjK
Date:
Mon Mar 14 00:11:56 2011 +0000
Parent:
13:846c8b6ffb7f
Child:
15:e01144bae101
Commit message:
1.10 See ChangeLog.c

Changed in this revision

ChangeLog.c Show annotated file Show diff for this revision Revisions of this file
example3.h Show annotated file Show diff for this revision Revisions of this file
--- a/ChangeLog.c	Sun Mar 13 23:54:06 2011 +0000
+++ b/ChangeLog.c	Mon Mar 14 00:11:56 2011 +0000
@@ -1,5 +1,11 @@
 /* $Id:$
 
+1.10- 13 Mar 2011
+
+    * The rescheduling showed the timer being stopped and restarted
+      to perform a new scheduled grab. This was changed to show the 
+      timer free running and the reschedules being setup.
+
 1.9 - 13 Mar 2011
 
     * Improved example3.h to add rescheduling additional grabs
--- a/example3.h	Sun Mar 13 23:54:06 2011 +0000
+++ b/example3.h	Mon Mar 14 00:11:56 2011 +0000
@@ -29,13 +29,14 @@
 bool dmaTransferComplete;
 
 MODDMA dma;
-MODDMA_Config *conf;
+MODDMA_Config *conf, conf_copy;
 
 void TC0_callback(void);
 void ERR0_callback(void);
 
 int main() {
-    
+    volatile int life_counter = 0;
+     
     // Macros defined in iomacros.h, saves messing with DigitalIn
     p30_AS_INPUT; p30_MODE( PIN_PULLUP ); // P0.4
     p29_AS_INPUT; p29_MODE( PIN_PULLUP ); // P0.5
@@ -82,8 +83,11 @@
     // Begin.
     LPC_TIM1->TCR = 1;
        
-    while (1) {          
-        led1 = !led1; // Show some sort of life.
+    while (1) { 
+        if (life_counter++ > 1000000) {
+            led1 = !led1; // Show some sort of life.
+            life_counter = 0;
+        }
         
         if (dmaTransferComplete) {
             dmaTransferComplete = false;
@@ -95,8 +99,7 @@
             
             // Schedule another grab.
             if (dma.Setup( conf )) {        
-                dma.Enable( conf );
-                LPC_TIM1->TCR = 1;
+                dma.Enable( conf );                
             }            
         }
     }       
@@ -107,10 +110,7 @@
     
     // Just show sample sequence grab complete.
     led3 = !led3; 
-    
-    // Disable firing timer.
-    LPC_TIM1->TCR = 0;
-    
+        
     // Get configuration pointer.
     MODDMA_Config *config = dma.getConfig();