CameraC328
Dependents: CameraC328_TestProgram CameraC328_Thresholding Camera_TestProgram_2015 Camera_TestProgram_2015 ... more
Diff: main.cpp
- Revision:
- 2:6a72fcad5c0a
- Parent:
- 1:167e51d598cf
- Child:
- 3:6d3150d4396a
--- a/main.cpp Sun Jun 27 05:04:04 2010 +0000 +++ b/main.cpp Mon Jun 28 13:57:15 2010 +0000 @@ -5,9 +5,13 @@ DigitalOut myled2(LED2); CameraC328 camera(p9, p10); Serial serial(USBTX, USBRX); +LocalFileSystem fs ("fs"); +const int IMG_X = 80; +const int IMG_Y = 60; +char buf[IMG_X * IMG_Y * 2]; void cbfunc(size_t done, size_t total, char c) { - serial.printf("%8d/%8d\r", done, total); + buf[done - 1] = c; } int main() { @@ -25,7 +29,7 @@ serial.printf("[FAIL] : CameraC328::sync (Error=%02X)\n", (int)err); } - err = camera.init(CameraC328::Jpeg, CameraC328::RawResolution160x120, CameraC328::JpegResolution640x480); + err = camera.init(CameraC328::Color16bit, CameraC328::RawResolution80x60, CameraC328::JpegResolution80x64); if (CameraC328::NoError == err) { serial.printf("[ OK ] : CameraC328::init\n"); } else { @@ -39,6 +43,22 @@ serial.printf("[FAIL] : CameraC328::getPicture(PreviewPicture) (Error=%02X)\n", (int)err); } + FILE *fp = fopen("/fs/img.ppm","w"); + fprintf(fp, "P3\n"); + fprintf(fp, "%d %d\n", IMG_X, IMG_Y); + fprintf(fp, "%d\n", 255); + for (int y = 0; y < IMG_Y; y++) { + for (int x = 0; x < IMG_X; x++) { + int adrofs = y * (IMG_X * 2) + (x * 2); + uint16_t dat = (buf[adrofs + 0] << 8) | (buf[adrofs + 1] << 0); + uint8_t r = ((dat >> 11) & 0x1f) << 3; + uint8_t g = ((dat >> 5) & 0x3f) << 2; + uint8_t b = ((dat >> 0) & 0x1f) << 3; + fprintf(fp,"%d %d %d\n", r, g, b); + } + } + fclose(fp); + while (1) { myled1 = 1; wait(0.2);