Committer:
esmiwa
Date:
Sun Jun 17 01:15:35 2012 +0000
Revision:
0:5bf7e3564c3b

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
esmiwa 0:5bf7e3564c3b 1 //main.cpp
esmiwa 0:5bf7e3564c3b 2 #include "mbed.h"
esmiwa 0:5bf7e3564c3b 3 #include "CameraC1098.h"
esmiwa 0:5bf7e3564c3b 4 #include "SDFileSystem.h"
esmiwa 0:5bf7e3564c3b 5 #include "TextLCD.h"
esmiwa 0:5bf7e3564c3b 6
esmiwa 0:5bf7e3564c3b 7 // Definitions.
esmiwa 0:5bf7e3564c3b 8 #define USE_JPEG_HIGH_RESOLUTION 1
esmiwa 0:5bf7e3564c3b 9 #define USE_SD_CARD 0
esmiwa 0:5bf7e3564c3b 10
esmiwa 0:5bf7e3564c3b 11 //Variables.
esmiwa 0:5bf7e3564c3b 12 static const int RAWIMG_X = 80;
esmiwa 0:5bf7e3564c3b 13 static const int RAWIMG_Y = 60;
esmiwa 0:5bf7e3564c3b 14 static char buf[RAWIMG_X * RAWIMG_Y * 2];
esmiwa 0:5bf7e3564c3b 15 static FILE *fp_jpeg;
esmiwa 0:5bf7e3564c3b 16 static const int packageSize = 512;
esmiwa 0:5bf7e3564c3b 17 int i=0;
esmiwa 0:5bf7e3564c3b 18 int shutter=0;
esmiwa 0:5bf7e3564c3b 19 //Modules.
esmiwa 0:5bf7e3564c3b 20 #if USE_SD_CARD //USE_SD_CDARD=0:Local, =1:SD
esmiwa 0:5bf7e3564c3b 21 SDFileSystem sd(p5, p6, p7, p8, "fs");
esmiwa 0:5bf7e3564c3b 22 #else
esmiwa 0:5bf7e3564c3b 23 LocalFileSystem fs("fs");
esmiwa 0:5bf7e3564c3b 24 #endif
esmiwa 0:5bf7e3564c3b 25
esmiwa 0:5bf7e3564c3b 26 //CameraC1098
esmiwa 0:5bf7e3564c3b 27 CameraC1098 camera(p9, p10, CameraC1098::Baud14400);
esmiwa 0:5bf7e3564c3b 28 //ErrorNunber constracture
esmiwa 0:5bf7e3564c3b 29 bool err;
esmiwa 0:5bf7e3564c3b 30 //
esmiwa 0:5bf7e3564c3b 31 //CameraC1098::NoError = 0x00;
esmiwa 0:5bf7e3564c3b 32
esmiwa 0:5bf7e3564c3b 33 //TextLCD
esmiwa 0:5bf7e3564c3b 34 TextLCD lcd(p24, p26, p27, p28, p29, p30); // rs, e, d4-d7
esmiwa 0:5bf7e3564c3b 35 //LED
esmiwa 0:5bf7e3564c3b 36 DigitalOut myled1(LED1);
esmiwa 0:5bf7e3564c3b 37 DigitalOut myled4(LED4);
esmiwa 0:5bf7e3564c3b 38 InterruptIn tact(p22);
esmiwa 0:5bf7e3564c3b 39 //setting camera
esmiwa 0:5bf7e3564c3b 40 void camera_set(void) {
esmiwa 0:5bf7e3564c3b 41 err = camera.sync(); //syncronising
esmiwa 0:5bf7e3564c3b 42 err = camera.init(CameraC1098::JpegResolution640x480); //initialising
esmiwa 0:5bf7e3564c3b 43 err = camera.getnewbaud(); //change baudrate 14400 -> 115200bps
esmiwa 0:5bf7e3564c3b 44 }
esmiwa 0:5bf7e3564c3b 45 //setting packetsize
esmiwa 0:5bf7e3564c3b 46 void packagesize_set(void){
esmiwa 0:5bf7e3564c3b 47 err = camera.setupPackageSize(packageSize);
esmiwa 0:5bf7e3564c3b 48 }
esmiwa 0:5bf7e3564c3b 49 //saving image data to fp_jpd
esmiwa 0:5bf7e3564c3b 50 void jpeg_callback(char *buf, size_t siz) { //*buf:image buffer size, siz:image size
esmiwa 0:5bf7e3564c3b 51 for (int i = 0; i < (int)siz; i++) {
esmiwa 0:5bf7e3564c3b 52 fprintf(fp_jpeg, "%c", buf[i]);
esmiwa 0:5bf7e3564c3b 53 }
esmiwa 0:5bf7e3564c3b 54 }
esmiwa 0:5bf7e3564c3b 55 //getting Jpeg snapshot picture
esmiwa 0:5bf7e3564c3b 56 void snapshot_get(void)
esmiwa 0:5bf7e3564c3b 57 {
esmiwa 0:5bf7e3564c3b 58 char fname[64];
esmiwa 0:5bf7e3564c3b 59 snprintf(fname, sizeof(fname), "/fs/image%02d.jpg",i);
esmiwa 0:5bf7e3564c3b 60 fp_jpeg = fopen(fname, "w");
esmiwa 0:5bf7e3564c3b 61 err = camera.getJpegSnapshotPicture(jpeg_callback);
esmiwa 0:5bf7e3564c3b 62 fclose(fp_jpeg);
esmiwa 0:5bf7e3564c3b 63 }
esmiwa 0:5bf7e3564c3b 64 //shutter(p22)
esmiwa 0:5bf7e3564c3b 65 void getshutter(){
esmiwa 0:5bf7e3564c3b 66 shutter=1;
esmiwa 0:5bf7e3564c3b 67 }
esmiwa 0:5bf7e3564c3b 68 //
esmiwa 0:5bf7e3564c3b 69 int main()
esmiwa 0:5bf7e3564c3b 70 {
esmiwa 0:5bf7e3564c3b 71 tact.fall(&getshutter);
esmiwa 0:5bf7e3564c3b 72 lcd.cls();lcd.printf("Camera C1098");
esmiwa 0:5bf7e3564c3b 73 camera_set();
esmiwa 0:5bf7e3564c3b 74 wait_ms(100);
esmiwa 0:5bf7e3564c3b 75 packagesize_set();
esmiwa 0:5bf7e3564c3b 76 lcd.cls();lcd.printf("camera OK");
esmiwa 0:5bf7e3564c3b 77 while(1){
esmiwa 0:5bf7e3564c3b 78 if(shutter==1){
esmiwa 0:5bf7e3564c3b 79 myled1=1;lcd.cls();
esmiwa 0:5bf7e3564c3b 80 snapshot_get();
esmiwa 0:5bf7e3564c3b 81 shutter=0;
esmiwa 0:5bf7e3564c3b 82 i++;
esmiwa 0:5bf7e3564c3b 83 myled1=0;lcd.cls();lcd.printf("NEXT OK");
esmiwa 0:5bf7e3564c3b 84 }
esmiwa 0:5bf7e3564c3b 85 myled4=!myled4;
esmiwa 0:5bf7e3564c3b 86 wait(0.25);
esmiwa 0:5bf7e3564c3b 87 }
esmiwa 0:5bf7e3564c3b 88 }