For a question in forum this is a working example, there will be the example that is not working
Fork of eth_v13 by
main.cpp@4:a10e3d1bdb17, 2014-03-27 (annotated)
- 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?
User | Revision | Line number | New 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 | } |