For a question in forum this is a working example, there will be the example that is not working

Dependencies:   mbed

Fork of eth_v13 by Heiko Greiner

Committer:
hggerdd
Date:
Thu Mar 27 21:55:57 2014 +0000
Revision:
4:a10e3d1bdb17
Parent:
3:79dc3337d9da
working with wiznet w5100

Who changed what in which revision?

UserRevisionLine numberNew contents of line
hggerdd 0:f7caac9b804e 1 #include "mbed.h"
hggerdd 0:f7caac9b804e 2 #include "w5100.h"
hggerdd 0:f7caac9b804e 3 #include "ipaddr.h"
hggerdd 2:8f5bacfef390 4 #include "TCPSocket.h"
hggerdd 2:8f5bacfef390 5 #include "html.h"
hggerdd 2:8f5bacfef390 6 #include "sstream"
hggerdd 3:79dc3337d9da 7 #include "httpServer.h"
hggerdd 4:a10e3d1bdb17 8 //#include "SDFileSystem.h"
hggerdd 4:a10e3d1bdb17 9
hggerdd 4:a10e3d1bdb17 10 #include "test.h"
hggerdd 0:f7caac9b804e 11
hggerdd 0:f7caac9b804e 12 extern W5100Class W5100;
hggerdd 3:79dc3337d9da 13
hggerdd 0:f7caac9b804e 14 Serial pc(D1, D0);
hggerdd 0:f7caac9b804e 15 Timer sendStatusTimer;
hggerdd 0:f7caac9b804e 16 Timer pollUDPTimer;
hggerdd 2:8f5bacfef390 17 Ticker tickTCP;
hggerdd 2:8f5bacfef390 18
hggerdd 2:8f5bacfef390 19 int globalCounter = 0;
hggerdd 0:f7caac9b804e 20
hggerdd 1:f45d6c8ec0a9 21 DigitalOut myled(LED1);
hggerdd 1:f45d6c8ec0a9 22
hggerdd 3:79dc3337d9da 23 httpServer webServer(0);
hggerdd 0:f7caac9b804e 24
hggerdd 4:a10e3d1bdb17 25 #ifdef SDCARD_
hggerdd 4:a10e3d1bdb17 26 SDFileSystem sd(D4, D5, D3, D2, "sd");
hggerdd 4:a10e3d1bdb17 27 #endif
hggerdd 0:f7caac9b804e 28 int main()
hggerdd 0:f7caac9b804e 29 {
hggerdd 0:f7caac9b804e 30 IpAddr localhost(192,168,1,68);
hggerdd 0:f7caac9b804e 31 IpAddr netmask(255,255,255,0);
hggerdd 0:f7caac9b804e 32 IpAddr gateway(192,168,1,1);
hggerdd 0:f7caac9b804e 33
hggerdd 3:79dc3337d9da 34 // Verzögerung um das Terminal einzuschalten
hggerdd 1:f45d6c8ec0a9 35 wait(5);
hggerdd 1:f45d6c8ec0a9 36
hggerdd 0:f7caac9b804e 37 // Serielle Schnittstelle initialisieren
hggerdd 0:f7caac9b804e 38 pc.baud(115200);
hggerdd 0:f7caac9b804e 39
hggerdd 0:f7caac9b804e 40 // Initialisieren des Ethernetinterfaces
hggerdd 0:f7caac9b804e 41 pc.printf("Etbernet initialisieren.\n");
hggerdd 0:f7caac9b804e 42 W5100.hardware_reset();
hggerdd 0:f7caac9b804e 43 W5100.init();
hggerdd 0:f7caac9b804e 44
hggerdd 0:f7caac9b804e 45 uint8_t mac[6] = {0x00,0x00,0x5e,0x00,0x01,0x01};
hggerdd 0:f7caac9b804e 46 W5100.setMACAddress(mac);
hggerdd 0:f7caac9b804e 47
hggerdd 0:f7caac9b804e 48 uint8_t u[4];
hggerdd 0:f7caac9b804e 49 localhost.getIP(u);
hggerdd 0:f7caac9b804e 50 W5100.setIPAddress(u);
hggerdd 0:f7caac9b804e 51
hggerdd 0:f7caac9b804e 52 netmask.getIP(u);
hggerdd 0:f7caac9b804e 53 W5100.setSubnetMask(u);
hggerdd 0:f7caac9b804e 54
hggerdd 0:f7caac9b804e 55 gateway.getIP(u);
hggerdd 0:f7caac9b804e 56 W5100.setGatewayIp(u);
hggerdd 0:f7caac9b804e 57
hggerdd 0:f7caac9b804e 58 // Sendetimer starten (und anschließend per Polling abfragen)
hggerdd 0:f7caac9b804e 59 pc.printf("Sendetimer starten.\n");
hggerdd 3:79dc3337d9da 60 // sendStatusTimer.start();
hggerdd 2:8f5bacfef390 61
hggerdd 4:a10e3d1bdb17 62 #ifdef SDCARD_
hggerdd 4:a10e3d1bdb17 63 pc.printf("sd.disk_status = %x", sd.disk_status());
hggerdd 4:a10e3d1bdb17 64
hggerdd 4:a10e3d1bdb17 65
hggerdd 4:a10e3d1bdb17 66 mkdir("/sd/mydir", 0777);
hggerdd 4:a10e3d1bdb17 67
hggerdd 4:a10e3d1bdb17 68 FILE *fp = fopen("/sd/mydir/sdtest.txt", "w");
hggerdd 4:a10e3d1bdb17 69 if(fp == NULL) {
hggerdd 4:a10e3d1bdb17 70 printf("Could not open file for write\n");
hggerdd 4:a10e3d1bdb17 71 } else {
hggerdd 4:a10e3d1bdb17 72 fprintf(fp, "Hello fun SD Card World!");
hggerdd 4:a10e3d1bdb17 73 fclose(fp);
hggerdd 4:a10e3d1bdb17 74 }
hggerdd 4:a10e3d1bdb17 75 #endif
hggerdd 4:a10e3d1bdb17 76
hggerdd 3:79dc3337d9da 77 // TCP starten und regelmäßig bedienen
hggerdd 3:79dc3337d9da 78 webServer.start(80);
hggerdd 4:a10e3d1bdb17 79 tickTCP.attach(&webServer, &httpServer::poll, 0.1);
hggerdd 0:f7caac9b804e 80
hggerdd 0:f7caac9b804e 81 while(1) {
hggerdd 3:79dc3337d9da 82 /*
hggerdd 3:79dc3337d9da 83 // nach Ablauf der Wartezeit die STatusinformationen per Serieller Schnittstelle senden
hggerdd 3:79dc3337d9da 84 if (sendStatusTimer.read_ms() >= 2000) {
hggerdd 3:79dc3337d9da 85 sendStatusTimer.reset();
hggerdd 3:79dc3337d9da 86 pc.printf("(main) SnSR = 0x%d\n",W5100.readSnSR(0));
hggerdd 3:79dc3337d9da 87 }
hggerdd 3:79dc3337d9da 88 */
hggerdd 0:f7caac9b804e 89 }
hggerdd 0:f7caac9b804e 90 }