![](/media/cache/img/default_profile.jpg.50x50_q85.jpg)
main.cpp
- Committer:
- robertcook
- Date:
- 2012-06-13
- Revision:
- 0:32a0996dff0f
File content as of revision 0:32a0996dff0f:
/* * Echo server * Listens on TCP and UDP ports 7 for any incoming connections * Re-transmits any incoming bytes */ #include "mbed.h" #include "EthernetNetIf.h" #include "EchoServer.h" // Our Ethernet interface EthernetNetIf eth; // Our Echo server EchoServer server; #define byte char #define ScreenWidth 32 #define ScreenHeight 15 #define HTTPChunkSize 1024 #define ScreenBufferSize ScreenWidth*ScreenHeight*3 bool drawReadyFlag = false; typedef struct { byte blue; byte green; byte red; } color; unsigned int fileFrameCount; byte screenBuf[ScreenBufferSize]; Serial pc(USBTX, USBRX); SPI spi(p5, NC, p7); // mosi, miso, sclk void writePixel(int x, int y) { spi.write(screenBuf[(x*ScreenHeight+y)*3]); spi.write(screenBuf[(x*ScreenHeight+y)*3+1]); spi.write(screenBuf[(x*ScreenHeight+y)*3+2]); } void updateDisplay() { for (int y = ScreenHeight-1; y >= 0; y--) { if (y % 2 == 0) { for (int x = 0; x < ScreenWidth; x++) writePixel(x,y); } else { for (int x = ScreenWidth-1; x >= 0; x--) writePixel(x,y); } } wait_us(800); } void hexDump(byte *buf, unsigned long len, int wid) { for (unsigned long i = 0; i < len; i++) { if (!(i % wid)) pc.printf("\n"); else if (!(i % 4)) pc.printf(" "); pc.printf("%02x", buf[i]); } pc.printf("\n"); } /* Function: main Sets up the Ethernet interface using DHCP, reports the assigned IP address via serial, binds the Echo server to port 7 on TCP and UDP and then sits in a loop calling Net::poll() to keep the network stack doing its thing */ int main() { printf("\r\nSetting up...\r\n"); EthernetErr ethErr = eth.setup(); if (ethErr) { printf("Error %d in setup.\n", ethErr); return -1; } IpAddr ip = eth.getIp(); printf("mbed IP Address is %d.%d.%d.%d\r\n", ip[0], ip[1], ip[2], ip[3]); server.bind(); printf("Entering while loop Net::poll()ing\r\n"); while (1) { Net::poll(); if (drawReadyFlag) { updateDisplay(); drawReadyFlag = false; } } }