A Simple library to capture pictures from the uCam by 4D Systems

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?

UserRevisionLine numberNew 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