Projet S5 Lecture de l'accelerometre avec interruption

Dependencies:   mbed PowerControl

Fork of Projet_S5 by Jonathan Tousignant

Files at this revision

API Documentation at this revision

Comitter:
joGenie
Date:
Thu Mar 27 19:25:59 2014 +0000
Parent:
1:feae56685ab1
Child:
3:17a4ceb30535
Commit message:
Fonctionnel;

Changed in this revision

main.cpp Show annotated file Show diff for this revision Revisions of this file
--- a/main.cpp	Thu Mar 27 15:36:48 2014 +0000
+++ b/main.cpp	Thu Mar 27 19:25:59 2014 +0000
@@ -3,6 +3,7 @@
 
 Serial pc(USBTX, USBRX);
 DigitalOut led1(LED1);
+DigitalOut out(p26);
 
 void *accelerometer = Accelerometer_C_new();
 bool capture = false;
@@ -11,15 +12,13 @@
 
 extern "C" void interruptCapture(void)
 {
-    led1 = 1;
-    pc.printf("ALLO");
     if ((LPC_TIM2->IR & 0x10) == 0x10) // Interrupt capture
     {
         ready = !ready;
         if (first)
         {
             capture = !capture;
-            first = true;
+            first = false;
             
             LPC_TIM2->TC = 0;       // clear timer counter
             LPC_TIM2->PC = 0;       // clear prescale counter
@@ -43,11 +42,11 @@
             }
             else
             {
-                NVIC_DisableIRQ(TIMER3_IRQn); // Enable timer3 interrupt
+                NVIC_DisableIRQ(TIMER3_IRQn); // Disable timer3 interrupt
             }
             
             ready = false;
-            first = false;
+            first = true;
             LPC_TIM2->MCR = 0;
         } 
     }
@@ -62,7 +61,9 @@
     values = Accelerometer_C_getAccelValue(accelerometer);
     
     for(int i = 0; i < 3; i++)
-        pc.printf("%d\n", values[i]);
+        pc.printf("%d; ", values[i]);
+        
+    pc.printf("\n");
     
 
     LPC_TIM3->IR |= 0x01; // Reset timer  
@@ -82,9 +83,13 @@
     LPC_TIM2->TC = 0;               // clear timer counter
     LPC_TIM2->PC = 0;               // clear prescale counter
     LPC_TIM2->PR = 0;               // clear prescale register
+    LPC_TIM2->TCR |= (1 << 1);      // reset timer
+    LPC_TIM2->TCR &= ~(1 << 1);     // release reset
     LPC_TIM2->MR0 = SystemCoreClock / 10000;
+    
+    //LPC_TIM2->MCR |= 0x03;          // interrupt and reset control
     LPC_TIM2->IR |= 0xFF;           // Clear interrupt flag
-    LPC_TIM2->CCR |= (7 << 0);      // enable cap2.0 rising-edge capture and falling-edge; interrupt on cap2.0
+    LPC_TIM2->CCR |= 0x07;          // enable cap2.0 rising-edge capture and falling-edge; interrupt on cap2.0
     
     // Set timer 3 for match
     LPC_TIM3->MR0 = SystemCoreClock / 20;