Reads the text file on USB in Host mode and displays on the LCD.
Dependencies: C12832_lcd USBHost mbed
Fork of USBHostMSD_HelloWorld by
main.cpp@9:27174ecbb331, 2014-03-13 (annotated)
- Committer:
- bhakti08
- Date:
- Thu Mar 13 01:43:01 2014 +0000
- Revision:
- 9:27174ecbb331
- Parent:
- 4:f8a5c8aa895a
Reading a text file on USB and displaying on LCD
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
samux | 0:0d68fe822228 | 1 | #include "mbed.h" |
samux | 0:0d68fe822228 | 2 | #include "USBHostMSD.h" |
bhakti08 | 9:27174ecbb331 | 3 | #include "C12832_lcd.h" |
bhakti08 | 9:27174ecbb331 | 4 | #include <stdlib.h> |
samux | 0:0d68fe822228 | 5 | |
samux | 0:0d68fe822228 | 6 | DigitalOut led(LED1); |
bhakti08 | 9:27174ecbb331 | 7 | DigitalOut file_open(LED2); |
bhakti08 | 9:27174ecbb331 | 8 | DigitalOut file_write(LED3); |
bhakti08 | 9:27174ecbb331 | 9 | C12832_LCD lcd; |
bhakti08 | 9:27174ecbb331 | 10 | Serial pc(USBTX,USBRX); |
samux | 0:0d68fe822228 | 11 | |
samux | 0:0d68fe822228 | 12 | void msd_task(void const *) { |
bhakti08 | 9:27174ecbb331 | 13 | lcd.cls(); |
samux | 0:0d68fe822228 | 14 | USBHostMSD msd("usb"); |
bhakti08 | 9:27174ecbb331 | 15 | char data[100]; |
bhakti08 | 9:27174ecbb331 | 16 | char data_write; |
bhakti08 | 9:27174ecbb331 | 17 | lcd.cls(); |
samux | 0:0d68fe822228 | 18 | |
samux | 1:473f339c54c1 | 19 | // try to connect a MSD device |
samux | 1:473f339c54c1 | 20 | while(!msd.connect()) { |
samux | 1:473f339c54c1 | 21 | Thread::wait(500); |
samux | 1:473f339c54c1 | 22 | } |
bhakti08 | 9:27174ecbb331 | 23 | lcd.cls(); |
bhakti08 | 9:27174ecbb331 | 24 | lcd.printf("Device Detected!\n"); |
bhakti08 | 9:27174ecbb331 | 25 | wait (1); |
bhakti08 | 9:27174ecbb331 | 26 | lcd.cls(); |
bhakti08 | 9:27174ecbb331 | 27 | lcd.locate(0,0); |
samux | 1:473f339c54c1 | 28 | |
samux | 4:f8a5c8aa895a | 29 | // in a loop, append a file |
samux | 4:f8a5c8aa895a | 30 | // if the device is disconnected, we try to connect it again |
samux | 1:473f339c54c1 | 31 | |
samux | 4:f8a5c8aa895a | 32 | // append a file |
bhakti08 | 9:27174ecbb331 | 33 | FILE * fp = fopen("/usb/test1.txt", "r"); |
bhakti08 | 9:27174ecbb331 | 34 | //FILE *fp_out = fopen("/usb/out_file.txt","w"); |
samux | 1:473f339c54c1 | 35 | |
samux | 1:473f339c54c1 | 36 | if (fp != NULL) { |
bhakti08 | 9:27174ecbb331 | 37 | file_open = 1; |
bhakti08 | 9:27174ecbb331 | 38 | lcd.cls(); |
bhakti08 | 9:27174ecbb331 | 39 | while (!feof(fp)) |
bhakti08 | 9:27174ecbb331 | 40 | { |
bhakti08 | 9:27174ecbb331 | 41 | fscanf(fp,"%s",data); |
bhakti08 | 9:27174ecbb331 | 42 | lcd.printf("%s",data); |
bhakti08 | 9:27174ecbb331 | 43 | |
bhakti08 | 9:27174ecbb331 | 44 | } |
bhakti08 | 9:27174ecbb331 | 45 | wait(2); |
samux | 1:473f339c54c1 | 46 | fclose(fp); |
samux | 1:473f339c54c1 | 47 | } else { |
bhakti08 | 9:27174ecbb331 | 48 | lcd.cls(); |
bhakti08 | 9:27174ecbb331 | 49 | lcd.printf("File not found\n"); |
samux | 1:473f339c54c1 | 50 | } |
samux | 1:473f339c54c1 | 51 | |
bhakti08 | 9:27174ecbb331 | 52 | /*if(fp_out != NULL) |
bhakti08 | 9:27174ecbb331 | 53 | { |
bhakti08 | 9:27174ecbb331 | 54 | |
bhakti08 | 9:27174ecbb331 | 55 | if (pc.readable()) |
bhakti08 | 9:27174ecbb331 | 56 | { |
bhakti08 | 9:27174ecbb331 | 57 | file_write = 1; |
bhakti08 | 9:27174ecbb331 | 58 | pc.scanf("%c",&data_write); |
bhakti08 | 9:27174ecbb331 | 59 | fprintf(fp_out,"%c ",data_write); |
bhakti08 | 9:27174ecbb331 | 60 | |
bhakti08 | 9:27174ecbb331 | 61 | } |
bhakti08 | 9:27174ecbb331 | 62 | }*/ |
bhakti08 | 9:27174ecbb331 | 63 | |
samux | 0:0d68fe822228 | 64 | Thread::wait(500); |
samux | 0:0d68fe822228 | 65 | |
samux | 1:473f339c54c1 | 66 | // if device disconnected, try to connect again |
samux | 1:473f339c54c1 | 67 | if (!msd.connected()) |
bhakti08 | 9:27174ecbb331 | 68 | lcd.printf("Connect device"); |
samux | 1:473f339c54c1 | 69 | |
bhakti08 | 9:27174ecbb331 | 70 | |
samux | 0:0d68fe822228 | 71 | } |
samux | 0:0d68fe822228 | 72 | |
samux | 0:0d68fe822228 | 73 | |
samux | 0:0d68fe822228 | 74 | int main() { |
samux | 2:3e3df7a79050 | 75 | Thread msdTask(msd_task, NULL, osPriorityNormal, 1024 * 4); |
bhakti08 | 9:27174ecbb331 | 76 | pc.baud(9600); |
samux | 0:0d68fe822228 | 77 | while(1) { |
samux | 0:0d68fe822228 | 78 | led=!led; |
samux | 0:0d68fe822228 | 79 | Thread::wait(500); |
samux | 0:0d68fe822228 | 80 | } |
samux | 0:0d68fe822228 | 81 | } |