7Robot_Freescale / Mbed 2 deprecated freescal_cup_k22f

Dependencies:   mbed freescal_cup_k22f

Dependents:   freescal_cup_k22f

Revision:
27:d1da489fc79a
Parent:
26:a836e62e0c98
Child:
28:c9d882501013
--- a/source/Camera.cpp	Wed Jan 21 16:54:53 2015 +0000
+++ b/source/Camera.cpp	Wed Jan 21 17:34:38 2015 +0000
@@ -21,6 +21,7 @@
 double Periode_capture_image_us=50000;
 Ticker ticker_cam;
 
+
 AnalogOut FLAG(DAC0_OUT);
 
 void readline(void) // fonction de détection de la ligne
@@ -40,8 +41,8 @@
             si=0;
         if ( (compteur & 1)  && compteur >= 7) {     // mesure sur front descendant,
             //   pc.printf("lecture pixel\n");
-            pixel1[index_pixel][0]=pix1.read_u16();
-            pixel2[127 - index_pixel][0]=pix2.read_u16();
+            pixel1[index_pixel]=pix1.read_u16();
+            pixel2[127 - index_pixel]=pix2.read_u16();
             index_pixel ++;
         }
         wait_us(10);
@@ -63,10 +64,10 @@
     // et de la droite sur tamponpixel[128:255]
     for (i=ordre; i<128; i++) {
         for (int a=0; a<=ordre; a++) {
-            tamponpixel1[i]+=pixel1[i-a][0];
-            tamponpixel1[255-i]+=pixel1[127-i+a][0];
-            tamponpixel2[i]+=pixel2[i-a][0];
-            tamponpixel2[255-i]+=pixel2[127-i+a][0];            
+            tamponpixel1[i]+=pixel1[i-a];
+            tamponpixel1[255-i]+=pixel1[127-i+a];
+            tamponpixel2[i]+=pixel2[i-a];
+            tamponpixel2[255-i]+=pixel2[127-i+a];            
             
         }
         tamponpixel1[i]/=(ordre+1);
@@ -86,8 +87,8 @@
     // Actualisation de l'image filtrée
     for (i=0;i<128;i++)
     {
-        pixel1[i][0]=(tamponpixel1[i]+tamponpixel1[127+i])/2;
-        pixel2[i][0]=(tamponpixel2[i]+tamponpixel2[127+i])/2;
+        pixel1[i]=(tamponpixel1[i]+tamponpixel1[127+i])/2;
+        pixel2[i]=(tamponpixel2[i]+tamponpixel2[127+i])/2;
     }
 }
 
@@ -115,8 +116,8 @@
 void moyenne_temporelle()
 {
     // Lignes de pixels passés
-    past_pixels1[128][ordre_temporel]={0};
-    past_pixels2[128][ordre_temporel]={0};
+    double past_pixels1[128][ordre_temporel]={0};
+    double past_pixels2[128][ordre_temporel]={0};
     
     int i,j;
     
@@ -131,24 +132,26 @@
     }
     // Le premier pixel passé est le pixel présent
     for (i=0;i<128;i++)
-    { 
-        past_pixels1[i][0]=pixel1[]
-        past_pixels1[i][0]=pixel2[]
-    }   
+    {
+        past_pixels1[i][0]=pixel1[i];
+        past_pixels2[i][0]=pixel2[i];
+    }
     // Moyenne des pixels passés enregistrée sur le plus
     // vieux pixel qui sera effacé à la prochaine moyenne
-    for (i=0;i<128;i++)
+    for (j=0;j<ordre_temporel;j++)
     {
         for (i=0;i<128;i++)
         {
-            pixel1[i][ordre2-1]=pixel1[i][ordre2-1]+pixel1[i][j];
-            pixel2[i][ordre2-1]=pixel2[i][ordre2-1]+pixel2[i][j];
+            past_pixels1[i][ordre_temporel-1] += past_pixels1[i][j];
+            past_pixels2[i][ordre_temporel-1] += past_pixels2[i][j];
         }
-    pixel1[i]=pixel1[i][0]/ordre2;
-    pixel2[i]=pixel2[i][0]/ordre2;
+    }     
+    // On n'oublie pas de diviser par l'ordre pour faire la moyenne
+    for (i=0;i<128;i++)
+    {
+        pixel1[i] = past_pixels1[i][ordre_temporel-1]/ordre_temporel;
+        pixel2[i] = past_pixels2[i][ordre_temporel-1]/ordre_temporel;
     }
-
-
 }
 void interrupt_camera()
 {
@@ -159,25 +162,25 @@
     readline();
     passebas(10);
     derivation();
-    moyenne_temporel();
+    moyenne_temporelle();
     //passebas(4); 
 
     for (int i=0;i<15;i++)
     {
-        pixel1[i][0]=0;
-        pixel2[i][0]=0;
-        pixel1[127-i][0]=0;
-        pixel2[127-i][0]=0;
+        pixel1[i]=0;
+        pixel2[i]=0;
+        pixel1[127-i]=0;
+        pixel2[127-i]=0;
     } 
     max_detect1=indexMin;
     max_detect2=indexMin;
     for (int j=indexMin; j<=indexMax; j++)
     {
-        if (pixel1[j][0]>pixel1[max_detect1][0])
+        if (pixel1[j]>pixel1[max_detect1])
         {
             max_detect1=j;
         }
-        if (pixel2[j][0]>pixel2[max_detect2][0])
+        if (pixel2[j]>pixel2[max_detect2])
         {
             max_detect2=j;
         }   
@@ -209,6 +212,7 @@
         servo= ordre; 
     flag_new_image=1;
     FLAG.write(0);
+    
 }
     
 void init_camera()