Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
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 | } |
