Tomas Havran
/
mbed_line_camera
Ahoj Štury
main.cpp@2:5506657d79a8, 2015-02-03 (annotated)
- Committer:
- havri
- Date:
- Tue Feb 03 08:30:13 2015 +0000
- Revision:
- 2:5506657d79a8
- Parent:
- 1:cae174481a60
tt
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
havri | 0:7d02a614f4e7 | 1 | #include "mbed.h" |
havri | 0:7d02a614f4e7 | 2 | DigitalOut myled(LED1); |
havri | 0:7d02a614f4e7 | 3 | AnalogIn CameraIn(PTD5); |
havri | 0:7d02a614f4e7 | 4 | DigitalOut SI(PTD7); |
havri | 0:7d02a614f4e7 | 5 | DigitalOut CLK(PTE1); |
havri | 1:cae174481a60 | 6 | |
havri | 0:7d02a614f4e7 | 7 | Serial pc(USBTX,USBRX); |
havri | 0:7d02a614f4e7 | 8 | DigitalIn butt(PTC13); |
havri | 0:7d02a614f4e7 | 9 | |
havri | 1:cae174481a60 | 10 | int i; |
havri | 1:cae174481a60 | 11 | float camera[128]; |
havri | 1:cae174481a60 | 12 | float convolutions[142]; |
havri | 1:cae174481a60 | 13 | float camera_con[156]; |
havri | 2:5506657d79a8 | 14 | float soucet[156][15]; |
havri | 1:cae174481a60 | 15 | float jadro[] = {0,0.222520749166399,0.433883397574414,0.623489357288624,0.78183100975747, |
havri | 1:cae174481a60 | 16 | 0.900968456705778,0.974927659118645,1,0.974928249597434,0.900969608054333, |
havri | 1:cae174481a60 | 17 | 0.781832664242464,0.623491431947411,0.433885788375115,0.222523336224485,2.65358979335278E-06}; |
havri | 1:cae174481a60 | 18 | |
havri | 1:cae174481a60 | 19 | int convolution() |
havri | 1:cae174481a60 | 20 | { |
havri | 1:cae174481a60 | 21 | float temp; |
havri | 2:5506657d79a8 | 22 | for(int a = 0; a<=13; a++) |
havri | 2:5506657d79a8 | 23 | { |
havri | 2:5506657d79a8 | 24 | camera_con[a] = 1; |
havri | 2:5506657d79a8 | 25 | } |
havri | 2:5506657d79a8 | 26 | |
havri | 2:5506657d79a8 | 27 | for(int a = 14; a<=142; a++) |
havri | 2:5506657d79a8 | 28 | { |
havri | 2:5506657d79a8 | 29 | camera_con[a] = camera[a-14]; |
havri | 2:5506657d79a8 | 30 | } |
havri | 2:5506657d79a8 | 31 | |
havri | 2:5506657d79a8 | 32 | for(int a = 143; a<=155; a++) |
havri | 1:cae174481a60 | 33 | { |
havri | 1:cae174481a60 | 34 | camera_con[a] = 1; |
havri | 1:cae174481a60 | 35 | } |
havri | 1:cae174481a60 | 36 | |
havri | 2:5506657d79a8 | 37 | for(int a = 0; a<=142; a++) |
havri | 1:cae174481a60 | 38 | { |
havri | 2:5506657d79a8 | 39 | |
havri | 1:cae174481a60 | 40 | for(int b = 0; b < 15; b++) |
havri | 1:cae174481a60 | 41 | { |
havri | 2:5506657d79a8 | 42 | |
havri | 2:5506657d79a8 | 43 | soucet[a][b]= camera_con[a]*jadro[b]; |
havri | 2:5506657d79a8 | 44 | } |
havri | 2:5506657d79a8 | 45 | |
havri | 2:5506657d79a8 | 46 | |
havri | 1:cae174481a60 | 47 | } |
havri | 2:5506657d79a8 | 48 | for(int a = 0; a<=128; a++) |
havri | 2:5506657d79a8 | 49 | { |
havri | 2:5506657d79a8 | 50 | 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]+ |
havri | 2:5506657d79a8 | 51 | 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]; |
havri | 2:5506657d79a8 | 52 | } |
havri | 2:5506657d79a8 | 53 | |
havri | 1:cae174481a60 | 54 | |
havri | 1:cae174481a60 | 55 | return(1); |
havri | 1:cae174481a60 | 56 | } |
havri | 1:cae174481a60 | 57 | |
havri | 1:cae174481a60 | 58 | int scan() |
havri | 1:cae174481a60 | 59 | { |
havri | 1:cae174481a60 | 60 | CLK = 0; |
havri | 1:cae174481a60 | 61 | SI = 1; |
havri | 1:cae174481a60 | 62 | wait_us(65); |
havri | 1:cae174481a60 | 63 | CLK = 1; |
havri | 1:cae174481a60 | 64 | SI = 0; |
havri | 1:cae174481a60 | 65 | wait_us(65); |
havri | 1:cae174481a60 | 66 | for(i=0; i<128; i++) |
havri | 1:cae174481a60 | 67 | { |
havri | 1:cae174481a60 | 68 | camera[i]= CameraIn; |
havri | 1:cae174481a60 | 69 | wait_us(65); |
havri | 1:cae174481a60 | 70 | CLK=0; |
havri | 1:cae174481a60 | 71 | wait_us(65); |
havri | 1:cae174481a60 | 72 | CLK = 1; |
havri | 1:cae174481a60 | 73 | } |
havri | 1:cae174481a60 | 74 | return(1); |
havri | 1:cae174481a60 | 75 | } |
havri | 1:cae174481a60 | 76 | |
havri | 1:cae174481a60 | 77 | |
havri | 1:cae174481a60 | 78 | |
havri | 0:7d02a614f4e7 | 79 | int main() { |
havri | 1:cae174481a60 | 80 | while(1) { |
havri | 1:cae174481a60 | 81 | scan(); |
havri | 1:cae174481a60 | 82 | convolution(); |
havri | 1:cae174481a60 | 83 | if(butt == 1) |
havri | 1:cae174481a60 | 84 | { |
havri | 1:cae174481a60 | 85 | |
havri | 2:5506657d79a8 | 86 | for(i=0; i<128; i++) |
havri | 0:7d02a614f4e7 | 87 | { |
havri | 1:cae174481a60 | 88 | pc.printf(" %f;",convolutions[i]); |
havri | 0:7d02a614f4e7 | 89 | wait_us(20); |
havri | 0:7d02a614f4e7 | 90 | } |
havri | 0:7d02a614f4e7 | 91 | pc.printf("\n"); |
havri | 0:7d02a614f4e7 | 92 | } |
havri | 2:5506657d79a8 | 93 | |
havri | 0:7d02a614f4e7 | 94 | |
havri | 0:7d02a614f4e7 | 95 | } |
havri | 0:7d02a614f4e7 | 96 | } |