A Simple library to capture pictures from the uCam by 4D Systems
uCam.h@0:68395cd065e4, 2012-05-29 (annotated)
- Committer:
- ms523
- Date:
- Tue May 29 08:01:20 2012 +0000
- Revision:
- 0:68395cd065e4
Working with external FeRAM. Will require hacking to save the data to other formats of memory
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
ms523 | 0:68395cd065e4 | 1 | #ifndef __UCAM_H__ |
ms523 | 0:68395cd065e4 | 2 | #define __UCAM_H__ |
ms523 | 0:68395cd065e4 | 3 | |
ms523 | 0:68395cd065e4 | 4 | #include "mbed.h" |
ms523 | 0:68395cd065e4 | 5 | #include "MODSERIAL.h" |
ms523 | 0:68395cd065e4 | 6 | #include "FeRAM.h" |
ms523 | 0:68395cd065e4 | 7 | |
ms523 | 0:68395cd065e4 | 8 | // Define colours |
ms523 | 0:68395cd065e4 | 9 | #define GREY_2BIT 0x01 |
ms523 | 0:68395cd065e4 | 10 | #define GREY_4BIT 0x02 |
ms523 | 0:68395cd065e4 | 11 | #define GREY_8BIT 0x03 |
ms523 | 0:68395cd065e4 | 12 | #define COLOUR_8BIT 0x04 |
ms523 | 0:68395cd065e4 | 13 | #define COLOUR_12BIT 0x05 |
ms523 | 0:68395cd065e4 | 14 | #define COLOUR_16BIT 0x06 |
ms523 | 0:68395cd065e4 | 15 | #define JPEG 0x07 |
ms523 | 0:68395cd065e4 | 16 | // Define RAW formats |
ms523 | 0:68395cd065e4 | 17 | #define RAW_80x60 0x01 |
ms523 | 0:68395cd065e4 | 18 | #define RAW_160x120 0x03 |
ms523 | 0:68395cd065e4 | 19 | #define RAW_320x240 0x05 |
ms523 | 0:68395cd065e4 | 20 | #define RAW_640x480 0x07 |
ms523 | 0:68395cd065e4 | 21 | #define RAW_128x128 0x09 |
ms523 | 0:68395cd065e4 | 22 | #define RAW_128x96 0x0B |
ms523 | 0:68395cd065e4 | 23 | // Define JPEG formats |
ms523 | 0:68395cd065e4 | 24 | #define JPEG_60x64 0x01 |
ms523 | 0:68395cd065e4 | 25 | #define JPEG_160x128 0x03 |
ms523 | 0:68395cd065e4 | 26 | #define JPEG_320x240 0x05 |
ms523 | 0:68395cd065e4 | 27 | #define JPEG_640x480 0x07 |
ms523 | 0:68395cd065e4 | 28 | // Define uCam responses |
ms523 | 0:68395cd065e4 | 29 | #define _ACK 0x0E |
ms523 | 0:68395cd065e4 | 30 | #define _SYNC 0x0D |
ms523 | 0:68395cd065e4 | 31 | |
ms523 | 0:68395cd065e4 | 32 | // mode codes for 23K256 |
ms523 | 0:68395cd065e4 | 33 | #define BYTE_MODE 0x00 |
ms523 | 0:68395cd065e4 | 34 | #define SEQUENTIAL_MODE 0x40 |
ms523 | 0:68395cd065e4 | 35 | |
ms523 | 0:68395cd065e4 | 36 | // command codes for 23K256 |
ms523 | 0:68395cd065e4 | 37 | #define READ 0x03 |
ms523 | 0:68395cd065e4 | 38 | #define WRITE 0x02 |
ms523 | 0:68395cd065e4 | 39 | #define READ_STATUS 0x05 // called RDSR in datasheet |
ms523 | 0:68395cd065e4 | 40 | #define WRITE_STATUS 0x01 // called WRSR in datasheet |
ms523 | 0:68395cd065e4 | 41 | |
ms523 | 0:68395cd065e4 | 42 | class uCam { |
ms523 | 0:68395cd065e4 | 43 | public: |
ms523 | 0:68395cd065e4 | 44 | // define which pins are used |
ms523 | 0:68395cd065e4 | 45 | uCam(PinName tx, PinName rx, int buffer); |
ms523 | 0:68395cd065e4 | 46 | |
ms523 | 0:68395cd065e4 | 47 | // Methods |
ms523 | 0:68395cd065e4 | 48 | int Sync(); |
ms523 | 0:68395cd065e4 | 49 | int SetBaud(int baud); |
ms523 | 0:68395cd065e4 | 50 | int Initial(unsigned char COLOUR, unsigned char RES); |
ms523 | 0:68395cd065e4 | 51 | int Get_Picture(unsigned char *data); |
ms523 | 0:68395cd065e4 | 52 | int Get_Response(unsigned char type, unsigned char command); |
ms523 | 0:68395cd065e4 | 53 | int Save_Picture_To_Memory(FeRAM &flash, int address); |
ms523 | 0:68395cd065e4 | 54 | int Save_Zoom_Picture_To_Memory(FeRAM &flash, int address); |
ms523 | 0:68395cd065e4 | 55 | |
ms523 | 0:68395cd065e4 | 56 | private: |
ms523 | 0:68395cd065e4 | 57 | MODSERIAL _uCam; // uCam TX and RX |
ms523 | 0:68395cd065e4 | 58 | |
ms523 | 0:68395cd065e4 | 59 | }; |
ms523 | 0:68395cd065e4 | 60 | |
ms523 | 0:68395cd065e4 | 61 | #endif |