7Robot_Freescale / Mbed 2 deprecated freescal_cup_k22f

Dependencies:   mbed freescal_cup_k22f

Dependents:   freescal_cup_k22f

source/Camera.cpp

Committer:
RobinN7
Date:
2015-01-13
Revision:
2:804797b0b298
Parent:
0:3af30bfbc3e5
Child:
3:f6a91455109c

File content as of revision 2:804797b0b298:

#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[256] ={0};
    int ordre=10, i=0;
    
    // Passe bas en partant de la gauche sur tamponpixel[0:127]
    for (i=ordre;i<128;i++)
    {
        for (int a=0;a<ordre;a++)
        {
            tamponpixel[i]+=pixel[i-a];
        }
        tamponpixel[i]/=ordre;
    }
    
    // Passe bas en partant de la droite sur tamponpixel[128:255]
    for (i=127-ordre;i>=0;i--)
    {
        for (int a=0;a<ordre;a++)
        {
            tamponpixel[255-i]+=pixel[i+a];
        }
        tamponpixel[255-i]/=ordre;
    }
    
    // Actualisation de l'image filtrée
    for (i=0;i<128;i++)
    {
        pixel[i]=tamponpixel[i];
    }
}