kevin eccli / Mbed 2 deprecated Freescale_CupV4

Dependencies:   mbed

Embed: (wiki syntax)

« Back to documentation index

Show/hide line numbers Camera.cpp Source File

Camera.cpp

00001 #include "Camera.h"
00002 
00003 
00004 Camera::Camera(PinName pin_si, PinName pin_clk, PinName pin_ao, int periode_us) : ao(pin_ao),si(pin_si),clk(pin_clk) 
00005 {
00006     this->periode = periode_us;
00007 }
00008 
00009 /*Quelques infos
00010 Voir la doc de la cam
00011 On genere une impulsion sur SI pour terminer l'acquisition en cours et signaler que l'on va lire les valeurs des pixels
00012 La valeur d'un pixel est mis analogiquement sur AO apres chaque front montant d'horloge
00013 SI et clk sont en quadratures de phase
00014 Le temps d'intégration est le temps entre la lecture du 28 eme pixel et le prochain signal SI*/
00015 void Camera::capture(unsigned short *valeurs)
00016 {
00017     //ENVOI DU SIGNAL DE START SUR SI(QUADRATURE DE PHASE AVEC CLK)
00018     this->si.write(1);
00019     wait_us(this->periode);
00020     this->clk.write(1);
00021     wait_us(this->periode);
00022     this->si.write(0);
00023     wait_us(this->periode);
00024     this->ao.read_u16();
00025     this->clk.write(0);
00026 
00027     //RECUPERATION DES DONNEES
00028     wait_us(this->periode);
00029     for (int i = 0; i < 128; i++)
00030     {
00031         wait_us(this->periode);
00032         wait_us(this->periode);
00033         this->clk.write(1);
00034         wait_us(this->periode);
00035         wait_us(this->periode);
00036         //this->ao.read(); pour avoir des flottants sur [0;1]
00037         valeurs[i] = this->ao.read_u16();
00038         this->clk.write(0);   
00039     }
00040     
00041     //PROCEDURE DE TERMINAISON
00042     wait_us(this->periode);
00043     wait_us(this->periode);
00044     this->clk.write(1);
00045     wait_us(this->periode);
00046     wait_us(this->periode);
00047     this->clk.write(0);
00048 
00049 }
00050 
00051 void Camera::setPeriod(int periode)
00052 {
00053     this->periode = periode;
00054 }