7Robot_Freescale / Mbed 2 deprecated freescal_cup_k22f

Dependencies:   mbed freescal_cup_k22f

Dependents:   freescal_cup_k22f

Revision:
0:3af30bfbc3e5
Child:
2:804797b0b298
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/source/Camera.cpp	Tue Jan 13 15:37:52 2015 +0000
@@ -0,0 +1,71 @@
+#include "mbed.h"
+#include "Camera.h"
+
+DigitalOut clk(PTC2);
+DigitalOut si(PTB3);
+AnalogIn pix(PTB2);
+
+
+extern unsigned int pixel[128]={0}; // 
+
+void readline(void) // fonction de détection de la ligne 
+{
+    clk=0; // la clock est nulle au départ
+    int compteur = 0,index_pixel = 0, capture_finie = 0;
+    
+    while (!capture_finie)
+    {
+        if (compteur & 1)    // si compteur impair => front descendant
+            clk = 0;
+        else                // compteur pair => montant
+            clk = 1;
+        if(compteur == 5)
+            si = 1;
+    
+        if (compteur == 7)
+            si=0;   
+        if ( (compteur & 1)  && compteur >= 7) {     // mesure sur front descendant, 
+            //   pc.printf("lecture pixel\n");
+            pixel[index_pixel]=pix.read_u16();
+            index_pixel ++;
+        }
+        wait_us(10);
+        compteur++;
+        
+        if (index_pixel == 128)
+            capture_finie = 1;  
+    }
+    wait_ms(1);
+}
+
+void passebas()
+{
+    unsigned int tamponpixel[128] ={0};
+    int ordre=10, i=0;
+    
+    // Passe bas en partant de la gauche
+    for (i=ordre;i<65;i++)
+    {
+        for (int a=0;a<ordre;a++)
+        {
+            tamponpixel[i]+=pixel[i-a];
+        }
+        tamponpixel[i]/=ordre;
+    }
+    
+    // Passe bas en partant de la droite
+    for (i=127-ordre;i>=0;i--)
+    {
+        for (int a=0;a<ordre;a++)
+        {
+            tamponpixel[i]+=pixel[i+a];
+        }
+        tamponpixel[i]/=ordre;
+    }
+    
+    // Actualisation de l'image filtrée
+    for (i=0;i<128;i++)
+    {
+        pixel[i]=tamponpixel[i];
+    }
+}
\ No newline at end of file