Ahoj Štury

Dependencies:   LIS302 mbed

main.cpp

Committer:
havri
Date:
2015-02-03
Revision:
2:5506657d79a8
Parent:
1:cae174481a60

File content as of revision 2:5506657d79a8:

#include "mbed.h"
DigitalOut myled(LED1);
AnalogIn CameraIn(PTD5);
DigitalOut SI(PTD7);
DigitalOut CLK(PTE1);

Serial pc(USBTX,USBRX);
DigitalIn butt(PTC13);

int i;
float camera[128];
float convolutions[142];
float camera_con[156];
float soucet[156][15];
float jadro[] = {0,0.222520749166399,0.433883397574414,0.623489357288624,0.78183100975747,
                0.900968456705778,0.974927659118645,1,0.974928249597434,0.900969608054333,
                0.781832664242464,0.623491431947411,0.433885788375115,0.222523336224485,2.65358979335278E-06};

int convolution()
    {
        float temp;
    for(int a = 0; a<=13; a++)
            {
             camera_con[a] = 1;                  
            }
            
    for(int a = 14; a<=142; a++)
            {
             camera_con[a] = camera[a-14];                  
            }        
    
    for(int a = 143; a<=155; a++)
            {
             camera_con[a] = 1;                  
            }
            
    for(int a = 0; a<=142; a++)
            {
             
             for(int b = 0; b < 15; b++)
             {
                 
             soucet[a][b]= camera_con[a]*jadro[b];  
             }            
             
                       
            }
    for(int a = 0; a<=128; a++)
        {
        convolutions[a] = soucet[a][15]+soucet[a+1][14]+soucet[a+2][13]+soucet[a+3][12]+soucet[a+4][11]+soucet[a+5][10]+soucet[a+6][9]+
        soucet[a+7][8]+soucet[a+8][7]+soucet[a+9][6]+soucet[a+10][5]+soucet[a+11][4]+soucet[a+12][3]+soucet[a+13][2]+soucet[a+14][1]+soucet[a+15][0];
        }
    
    
    return(1);
    }

int scan()
    {
     CLK = 0;
        SI = 1;
        wait_us(65);
        CLK = 1;
        SI = 0;
        wait_us(65);
        for(i=0; i<128; i++)
        {
        camera[i]= CameraIn;
        wait_us(65);
        CLK=0;               
        wait_us(65);
        CLK = 1;                   
        }   
        return(1);
    }



int main() {
    while(1)    {                                               
                scan();
                convolution();
                if(butt == 1)
                {                
                
                for(i=0; i<128; i++)
                {
                pc.printf(" %f;",convolutions[i]);
                wait_us(20);
                }
                pc.printf("\n");
                }
                    
    
                }
}