TSL1401 is the line sensor camera.This library is used to read the raw data. modified Polytec paris sud
Fork of TSL1401 by
TSL1401.cpp@0:71198cb26156, 2014-10-05 (annotated)
- Committer:
- ht
- Date:
- Sun Oct 05 04:12:56 2014 +0000
- Revision:
- 0:71198cb26156
- Child:
- 1:7a8ca2147516
This library operates the camera using TSL1401.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ht | 0:71198cb26156 | 1 | #include "TSL1401.h" |
ht | 0:71198cb26156 | 2 | |
ht | 0:71198cb26156 | 3 | /* Macro */ |
ht | 0:71198cb26156 | 4 | #define TAOS_SI_HIGH TAOS_SI = 1 |
ht | 0:71198cb26156 | 5 | #define TAOS_SI_LOW TAOS_SI = 0 |
ht | 0:71198cb26156 | 6 | #define TAOS_CLK_HIGH TAOS_CLK = 1 |
ht | 0:71198cb26156 | 7 | #define TAOS_CLK_LOW TAOS_CLK = 0 |
ht | 0:71198cb26156 | 8 | |
ht | 0:71198cb26156 | 9 | /* Constructor */ |
ht | 0:71198cb26156 | 10 | TSL1401::TSL1401(PinName s, PinName c, PinName a ) |
ht | 0:71198cb26156 | 11 | { |
ht | 0:71198cb26156 | 12 | |
ht | 0:71198cb26156 | 13 | SI = s; |
ht | 0:71198cb26156 | 14 | CLK = c; |
ht | 0:71198cb26156 | 15 | A0 = new AnalogIn( a ); |
ht | 0:71198cb26156 | 16 | } |
ht | 0:71198cb26156 | 17 | /* Destructor */ |
ht | 0:71198cb26156 | 18 | TSL1401::~TSL1401() |
ht | 0:71198cb26156 | 19 | { |
ht | 0:71198cb26156 | 20 | if( A0 != NULL) |
ht | 0:71198cb26156 | 21 | { |
ht | 0:71198cb26156 | 22 | delete A0; |
ht | 0:71198cb26156 | 23 | } |
ht | 0:71198cb26156 | 24 | } |
ht | 0:71198cb26156 | 25 | /* Image Caputure */ |
ht | 0:71198cb26156 | 26 | int *TSL1401::Capture( int LineStart, int LineStop) |
ht | 0:71198cb26156 | 27 | { |
ht | 0:71198cb26156 | 28 | int i; |
ht | 0:71198cb26156 | 29 | DigitalOut TAOS_SI(SI); |
ht | 0:71198cb26156 | 30 | DigitalOut TAOS_CLK(CLK); |
ht | 0:71198cb26156 | 31 | |
ht | 0:71198cb26156 | 32 | Max = 0,Min = 70000; |
ht | 0:71198cb26156 | 33 | TAOS_SI_HIGH; |
ht | 0:71198cb26156 | 34 | TAOS_CLK_HIGH; |
ht | 0:71198cb26156 | 35 | TAOS_SI_LOW; |
ht | 0:71198cb26156 | 36 | ImageData[0] = 0; |
ht | 0:71198cb26156 | 37 | TAOS_CLK_LOW; |
ht | 0:71198cb26156 | 38 | for(i = 1; i < LineStart; i++) { |
ht | 0:71198cb26156 | 39 | TAOS_CLK_HIGH; |
ht | 0:71198cb26156 | 40 | TAOS_CLK_LOW; |
ht | 0:71198cb26156 | 41 | } |
ht | 0:71198cb26156 | 42 | for(i = LineStart; i < LineStop; i++) { |
ht | 0:71198cb26156 | 43 | TAOS_CLK_HIGH; |
ht | 0:71198cb26156 | 44 | ImageData[i] = A0->read_u16(); // inputs data from camera (one pixel each time through loop) |
ht | 0:71198cb26156 | 45 | TAOS_CLK_LOW; |
ht | 0:71198cb26156 | 46 | |
ht | 0:71198cb26156 | 47 | if(Max < ImageData[i]){ |
ht | 0:71198cb26156 | 48 | Max = ImageData[i]; |
ht | 0:71198cb26156 | 49 | } |
ht | 0:71198cb26156 | 50 | if(Min > ImageData[i]){ |
ht | 0:71198cb26156 | 51 | Min = ImageData[i]; |
ht | 0:71198cb26156 | 52 | } |
ht | 0:71198cb26156 | 53 | |
ht | 0:71198cb26156 | 54 | } |
ht | 0:71198cb26156 | 55 | return ImageData; |
ht | 0:71198cb26156 | 56 | } |
ht | 0:71198cb26156 | 57 | |
ht | 0:71198cb26156 | 58 | |
ht | 0:71198cb26156 | 59 |