Reads the text file on USB in Host mode and displays on the LCD.

Dependencies:   C12832_lcd USBHost mbed

Fork of USBHostMSD_HelloWorld by Samuel Mokrani

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?

UserRevisionLine numberNew 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 }