supported GR-PEACH original: http://developer.mbed.org/users/va009039/code/USBHostC270_example/ The function of Isochronous has moved to USBHost_AddIso library.

Dependencies:   USBHost_custom_Addiso

Fork of USBHostC270_example_GR-PEACH by GR-PEACH_producer_meeting

main.cpp

Committer:
dkato
Date:
2015-04-01
Revision:
13:fa85d3614acf
Parent:
11:6a8eef89eb22
Child:
15:ac8b6c6dfb3f

File content as of revision 13:fa85d3614acf:

#include "USBHostMSD.h"
#include "USBHostC270.h"

Serial pc(USBTX, USBRX);
BusOut leds(LED1, LED2, LED3);

static uint8_t buf[1024*10];

int main() {
    pc.baud(921600);

    USBHostMSD* msd = new USBHostMSD("usb"); // USB flash drive
    USBHostC270* cam = new USBHostC270(C270_MJPEG, C270_160x120, _5FPS); // Logitech C270

    Timer interval_t;
    interval_t.reset();
    interval_t.start();
    int shot = 0;
    while(1) {
        if (interval_t.read() > 10 && cam->connected()) {
            int r = cam->readJPEG(buf, sizeof(buf));
            char path[32];
            snprintf(path, sizeof(path), "/usb/image%02d.jpg", shot % 20);
            printf("%d %s %d bytes\n", shot, path, r);
            if (msd->connected()) {
                FILE* fp = fopen(path, "wb");
                if (fp) {
                    fwrite(buf, r, 1, fp);
                    fclose(fp);
                }
                shot++;
                leds = shot % 8;
            }
            interval_t.reset();
        }
        if (!msd->connected()) {
            msd->connect();
            Thread::wait(500);
        }
        if (!cam->connected()) {
            cam->connect();
            Thread::wait(500);
        } else {
            cam->poll();
        }
    }
}