7Robot_Freescale / Mbed 2 deprecated freescal_cup_k22f

Dependencies:   mbed freescal_cup_k22f

Dependents:   freescal_cup_k22f

source/Camera.cpp

Committer:
AlexandreN7
Date:
2015-01-13
Revision:
8:8f886cd6a59f
Parent:
3:f6a91455109c
Child:
10:3424e7b66671

File content as of revision 8:8f886cd6a59f:

#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=7, 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];
    }
}

//fonction qui dérive le signal de la camera
void derivation()
{
    unsigned int tamponpixel[256] = {0};
    
    for (int i=1; i<128; i++) {
        tamponpixel[i]=pixel[i-1]-pixel[i];
    }

    // Actualisation de l'image filtrée
    for (int i=0; i<128; i++) {
        pixel[i]=tamponpixel[i];
    }

}