Test of Embedded Artists LPCXpresso baseboard SD card and ethernet facilities. This program downloads files from a website to the SD card. This program now uses the HTTPClient from: http://mbed.org/users/donatien/programs/HTTPClient/latest which downloads the files without errors. The previous version of this program was used to demonstrate that an earlier HTTPClient downloaded files with errors.

Dependencies:   EthernetNetIf FatFileSystem HTTPClient mbed

Fork of EA_DownloadToSD by Tom Coxon

Committer:
tom_coxon
Date:
Fri Jul 09 14:43:39 2010 +0000
Revision:
0:1b55f626a40f
Child:
1:0734a7b0fd5e

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
tom_coxon 0:1b55f626a40f 1 /*
tom_coxon 0:1b55f626a40f 2 Demo of Embedded Artists LPCXpresso baseboard SD card and ethernet facilities.
tom_coxon 0:1b55f626a40f 3
tom_coxon 0:1b55f626a40f 4 This program downloads three files from a website to the SD card.
tom_coxon 0:1b55f626a40f 5
tom_coxon 0:1b55f626a40f 6 SD Card setup:
tom_coxon 0:1b55f626a40f 7
tom_coxon 0:1b55f626a40f 8 1. Insert all five jumpers in J39 as described in section 4.3.3
tom_coxon 0:1b55f626a40f 9 of base board users guide.
tom_coxon 0:1b55f626a40f 10
tom_coxon 0:1b55f626a40f 11 2. Remove jumper marked "A" in J55 In order to connect PIO1_11
tom_coxon 0:1b55f626a40f 12 to CS signal of J40 (the SPI-SSEL signal) as described in section 4.3.3
tom_coxon 0:1b55f626a40f 13 of base board users guide.
tom_coxon 0:1b55f626a40f 14
tom_coxon 0:1b55f626a40f 15 Please note that there seems to be some problem with the libraries used. This program
tom_coxon 0:1b55f626a40f 16 downloads the files to the SD card but often looses some of the file data.
tom_coxon 0:1b55f626a40f 17
tom_coxon 0:1b55f626a40f 18 */
tom_coxon 0:1b55f626a40f 19
tom_coxon 0:1b55f626a40f 20 #include "mbed.h"
tom_coxon 0:1b55f626a40f 21 #include "SDFileSystem.h"
tom_coxon 0:1b55f626a40f 22 #include "HTTPClient.h"
tom_coxon 0:1b55f626a40f 23
tom_coxon 0:1b55f626a40f 24 DigitalOut led1(LED1);// blinks when all done
tom_coxon 0:1b55f626a40f 25 DigitalOut led4(LED4);// blinks during file download
tom_coxon 0:1b55f626a40f 26
tom_coxon 0:1b55f626a40f 27 HTTPClient http;
tom_coxon 0:1b55f626a40f 28
tom_coxon 0:1b55f626a40f 29 Ticker tick;
tom_coxon 0:1b55f626a40f 30
tom_coxon 0:1b55f626a40f 31 SDFileSystem sd(p5, p6, p7, p24, "sd");
tom_coxon 0:1b55f626a40f 32
tom_coxon 0:1b55f626a40f 33 void blinkLED4() {
tom_coxon 0:1b55f626a40f 34 led4 = !led4;
tom_coxon 0:1b55f626a40f 35 }
tom_coxon 0:1b55f626a40f 36
tom_coxon 0:1b55f626a40f 37 void dowloadFileToSD(char *url, char *path) {
tom_coxon 0:1b55f626a40f 38
tom_coxon 0:1b55f626a40f 39 // Open a file to write.
tom_coxon 0:1b55f626a40f 40 FILE *fd = fopen(path, "w");
tom_coxon 0:1b55f626a40f 41 if (fd == NULL) {
tom_coxon 0:1b55f626a40f 42 error("Can not write to SD, check SD and reset mbed.\r\n");
tom_coxon 0:1b55f626a40f 43 }
tom_coxon 0:1b55f626a40f 44
tom_coxon 0:1b55f626a40f 45 printf("Downloading to ");
tom_coxon 0:1b55f626a40f 46 printf("%s", path);
tom_coxon 0:1b55f626a40f 47 printf(" please wait ... \r\n");
tom_coxon 0:1b55f626a40f 48
tom_coxon 0:1b55f626a40f 49 tick.attach(& blinkLED4, 0.5);
tom_coxon 0:1b55f626a40f 50
tom_coxon 0:1b55f626a40f 51 http.get(url, fd);
tom_coxon 0:1b55f626a40f 52
tom_coxon 0:1b55f626a40f 53 // Close the file.
tom_coxon 0:1b55f626a40f 54 fclose(fd);
tom_coxon 0:1b55f626a40f 55
tom_coxon 0:1b55f626a40f 56 tick.detach();
tom_coxon 0:1b55f626a40f 57
tom_coxon 0:1b55f626a40f 58 printf("File downloaded to SD card\r\n");
tom_coxon 0:1b55f626a40f 59 led4 = 0;
tom_coxon 0:1b55f626a40f 60 }
tom_coxon 0:1b55f626a40f 61
tom_coxon 0:1b55f626a40f 62
tom_coxon 0:1b55f626a40f 63 int main(void) {
tom_coxon 0:1b55f626a40f 64
tom_coxon 0:1b55f626a40f 65 printf("\r\n----------- Starting ------------\r\n");
tom_coxon 0:1b55f626a40f 66
tom_coxon 0:1b55f626a40f 67 printf("Initialising NetServer ....\r\n");
tom_coxon 0:1b55f626a40f 68 //Initialize NetServer which obtains our DHCP address and gets the network interface ready
tom_coxon 0:1b55f626a40f 69 NetServer * net = NetServer::ready();
tom_coxon 0:1b55f626a40f 70
tom_coxon 0:1b55f626a40f 71 printf("\r\nNetwork interface is up\r\n");
tom_coxon 0:1b55f626a40f 72
tom_coxon 0:1b55f626a40f 73 dowloadFileToSD("http://homepage.ntlworld.com/green_bean/mbed/bong.wav", "/sd/bong.wav" );
tom_coxon 0:1b55f626a40f 74 dowloadFileToSD("http://homepage.ntlworld.com/green_bean/mbed/quarter.wav", "/sd/quarter.wav" );
tom_coxon 0:1b55f626a40f 75 dowloadFileToSD("http://homepage.ntlworld.com/green_bean/mbed/hour.wav", "/sd/hour.wav" );
tom_coxon 0:1b55f626a40f 76
tom_coxon 0:1b55f626a40f 77 printf("-------------- All done ------------\r\n");
tom_coxon 0:1b55f626a40f 78
tom_coxon 0:1b55f626a40f 79 while (1) {
tom_coxon 0:1b55f626a40f 80 led1 = !led1;
tom_coxon 0:1b55f626a40f 81 wait(0.2);
tom_coxon 0:1b55f626a40f 82 }
tom_coxon 0:1b55f626a40f 83 }