USB CDC (serial) and USB MSC (strage) Composite Device. http://mbed.org/users/okini3939/notebook/USB_Device/
Dependencies: ChaNFSSD mbed ChaNFS
Diff: main.cpp
- Revision:
- 2:5db90410bb90
- Parent:
- 1:bb08a84162b7
diff -r bb08a84162b7 -r 5db90410bb90 main.cpp --- a/main.cpp Fri Dec 23 15:39:13 2011 +0000 +++ b/main.cpp Fri Dec 23 16:37:58 2011 +0000 @@ -3,6 +3,7 @@ #include "SDFileSystem.h" #include <new> +DigitalOut myled(LED1); Serial pc(USBTX, USBRX); SDFileSystem sd(p5, p6, p7, p8, "sd"); USBCDCMSC cdcmsc(&sd); @@ -75,27 +76,45 @@ } int main() { - int c; + int c, u = 0; + Timer timer; set_new_handler(no_memory); // new handler function readfile("/sd/test.txt"); + timer.start(); while(1) { - if (cdcmsc.available()) { + if (timer.read_ms() > 500) { + myled = myled ? 0 : 1; + timer.reset(); + } + + if (u != cdcmsc.configured()) { + u = cdcmsc.configured(); + printf("configured %d\r\n", u); + } + + if (u && cdcmsc.available()) { // CDC -> pc serial c = cdcmsc.getc(); - pc.putc(c); if (c == '?') { listdir(&cdcmsc); + } else { + pc.putc(c); } } if (pc.readable()) { // PC serial -> CDC c = pc.getc(); - cdcmsc.putc(c); if (c == '?') { listdir(&pc); + } else { + if (u) { + cdcmsc.putc(c); + } else { + pc.putc(c); + } } } }