LCD1289Serial_Ethenet

Dependencies:   EthernetInterface FatFileSystemCpp SDFileSystem mbed-rtos mbed

Committer:
shindo
Date:
Wed Nov 07 06:42:34 2012 +0000
Revision:
0:a5367e4d8591
LCD1289Serial_Ethenet

Who changed what in which revision?

UserRevisionLine numberNew contents of line
shindo 0:a5367e4d8591 1 #include "mbed.h"
shindo 0:a5367e4d8591 2 #include "SDFileSystem.h"
shindo 0:a5367e4d8591 3
shindo 0:a5367e4d8591 4 #include "EthernetInterface.h"
shindo 0:a5367e4d8591 5
shindo 0:a5367e4d8591 6 #define ECHO_SERVER_PORT 10373
shindo 0:a5367e4d8591 7
shindo 0:a5367e4d8591 8 /*
shindo 0:a5367e4d8591 9 GND:
shindo 0:a5367e4d8591 10 VIN:
shindo 0:a5367e4d8591 11 VB :
shindo 0:a5367e4d8591 12 nR :
shindo 0:a5367e4d8591 13 p5 : mosi SD_DIN(37)
shindo 0:a5367e4d8591 14 p6 : miso SD_OUT(35)
shindo 0:a5367e4d8591 15 p7 : sck SD_SCL(36)
shindo 0:a5367e4d8591 16 p8 : SD_CS(38)
shindo 0:a5367e4d8591 17 p9 : LCD_RESET(17)
shindo 0:a5367e4d8591 18 p10: LCD_CNT
shindo 0:a5367e4d8591 19 p11: LCD_DATA(HC164-AB)
shindo 0:a5367e4d8591 20 p12:
shindo 0:a5367e4d8591 21 p13: LCD_CLK(HC164-CLK)
shindo 0:a5367e4d8591 22 p14: LCD_CS1(15)
shindo 0:a5367e4d8591 23 p15: LCD_CS2(16)
shindo 0:a5367e4d8591 24 p16: RS(4)
shindo 0:a5367e4d8591 25 p17: WR(5)
shindo 0:a5367e4d8591 26 p18: CLR(HC164-CLR)
shindo 0:a5367e4d8591 27 p19:
shindo 0:a5367e4d8591 28 p20:
shindo 0:a5367e4d8591 29
shindo 0:a5367e4d8591 30 p21:
shindo 0:a5367e4d8591 31 p22:
shindo 0:a5367e4d8591 32 p23:
shindo 0:a5367e4d8591 33 p24:
shindo 0:a5367e4d8591 34 p25:
shindo 0:a5367e4d8591 35 p26:
shindo 0:a5367e4d8591 36 p27:
shindo 0:a5367e4d8591 37 p28:
shindo 0:a5367e4d8591 38 p29:
shindo 0:a5367e4d8591 39 p30:
shindo 0:a5367e4d8591 40 D+
shindo 0:a5367e4d8591 41 D-
shindo 0:a5367e4d8591 42 TD+
shindo 0:a5367e4d8591 43 TD-
shindo 0:a5367e4d8591 44 RD+
shindo 0:a5367e4d8591 45 RD-
shindo 0:a5367e4d8591 46 IF+
shindo 0:a5367e4d8591 47 IF-
shindo 0:a5367e4d8591 48 VU
shindo 0:a5367e4d8591 49 VOUT
shindo 0:a5367e4d8591 50 */
shindo 0:a5367e4d8591 51
shindo 0:a5367e4d8591 52 typedef unsigned char u8;
shindo 0:a5367e4d8591 53 typedef unsigned short u16;
shindo 0:a5367e4d8591 54 typedef unsigned long u32;
shindo 0:a5367e4d8591 55
shindo 0:a5367e4d8591 56 DigitalOut LCD_RESET(p9);
shindo 0:a5367e4d8591 57 DigitalOut LCD_CNT(p10);
shindo 0:a5367e4d8591 58 DigitalOut LCD_CS(p14);
shindo 0:a5367e4d8591 59 DigitalOut LCD_CLR(p18);
shindo 0:a5367e4d8591 60 DigitalOut LCD_RS(p16);
shindo 0:a5367e4d8591 61 DigitalOut LCD_WR(p17);
shindo 0:a5367e4d8591 62
shindo 0:a5367e4d8591 63 SPI lcdSerial(p11, NC, p13);
shindo 0:a5367e4d8591 64
shindo 0:a5367e4d8591 65 u16 DeviceCode = 0;
shindo 0:a5367e4d8591 66
shindo 0:a5367e4d8591 67 //Serial pc(USBTX, USBRX);
shindo 0:a5367e4d8591 68
shindo 0:a5367e4d8591 69 #define LCD_WR_CMD(data){\
shindo 0:a5367e4d8591 70 LCD_CLR=0;\
shindo 0:a5367e4d8591 71 LCD_CLR=1;\
shindo 0:a5367e4d8591 72 lcdSerial.write(data);\
shindo 0:a5367e4d8591 73 LCD_RS=0;\
shindo 0:a5367e4d8591 74 LCD_CS=0;\
shindo 0:a5367e4d8591 75 LCD_WR=0;\
shindo 0:a5367e4d8591 76 wait_us(500);\
shindo 0:a5367e4d8591 77 LCD_WR=1;\
shindo 0:a5367e4d8591 78 LCD_CS=1;\
shindo 0:a5367e4d8591 79 }
shindo 0:a5367e4d8591 80
shindo 0:a5367e4d8591 81 #define LCD_WR_DATA(data){\
shindo 0:a5367e4d8591 82 LCD_CLR=0;\
shindo 0:a5367e4d8591 83 LCD_CLR=1;\
shindo 0:a5367e4d8591 84 lcdSerial.write(data);\
shindo 0:a5367e4d8591 85 LCD_RS=1;\
shindo 0:a5367e4d8591 86 LCD_CS=0;\
shindo 0:a5367e4d8591 87 LCD_WR=0;\
shindo 0:a5367e4d8591 88 LCD_WR=1;\
shindo 0:a5367e4d8591 89 LCD_CS=1;\
shindo 0:a5367e4d8591 90 }
shindo 0:a5367e4d8591 91
shindo 0:a5367e4d8591 92 #define WHITE 0xffff
shindo 0:a5367e4d8591 93
shindo 0:a5367e4d8591 94 LocalFileSystem local("local");
shindo 0:a5367e4d8591 95
shindo 0:a5367e4d8591 96 void LCD_Clear(u16 Color);
shindo 0:a5367e4d8591 97
shindo 0:a5367e4d8591 98 void LCD_WriteReg(u16 LCD_Reg, u16 LCD_RegValue)
shindo 0:a5367e4d8591 99 {
shindo 0:a5367e4d8591 100 LCD_WR_CMD(LCD_Reg);
shindo 0:a5367e4d8591 101 LCD_WR_DATA(LCD_RegValue);
shindo 0:a5367e4d8591 102 }
shindo 0:a5367e4d8591 103
shindo 0:a5367e4d8591 104 void LCD_Init1289(void)
shindo 0:a5367e4d8591 105 {
shindo 0:a5367e4d8591 106 LCD_CNT = 1;
shindo 0:a5367e4d8591 107 LCD_RESET = 0;
shindo 0:a5367e4d8591 108 LCD_CS = 1;
shindo 0:a5367e4d8591 109 wait_ms(50); // delay 50 ms
shindo 0:a5367e4d8591 110 LCD_RESET = 1;
shindo 0:a5367e4d8591 111 wait_ms(50); // delay 50 ms
shindo 0:a5367e4d8591 112 LCD_WriteReg(0x0000,0x0001);
shindo 0:a5367e4d8591 113 wait_ms(50); // delay 50 ms
shindo 0:a5367e4d8591 114 LCD_WriteReg(0x0000,0x0001);
shindo 0:a5367e4d8591 115 wait_ms(6); //�Lò¿ª¾��Õñ
shindo 0:a5367e4d8591 116 LCD_WriteReg(0x0003,0xA8A4);
shindo 0:a5367e4d8591 117 wait_ms(6); //0xA8A4
shindo 0:a5367e4d8591 118 LCD_WriteReg(0x000C,0x0000);
shindo 0:a5367e4d8591 119 wait_ms(6);
shindo 0:a5367e4d8591 120 LCD_WriteReg(0x000D,0x080C);
shindo 0:a5367e4d8591 121 wait_ms(6);
shindo 0:a5367e4d8591 122 LCD_WriteReg(0x000E,0x2B00);
shindo 0:a5367e4d8591 123 wait_ms(6);
shindo 0:a5367e4d8591 124 LCD_WriteReg(0x001E,0x00B7);
shindo 0:a5367e4d8591 125 wait_ms(6);
shindo 0:a5367e4d8591 126 LCD_WriteReg(0x0001,0x2B3F);
shindo 0:a5367e4d8591 127 wait_ms(6); //Çý��¯Êä³ö¿ØÖÆ320*240 0x6B3F
shindo 0:a5367e4d8591 128 LCD_WriteReg(0x0002,0x0600);
shindo 0:a5367e4d8591 129 wait_ms(6);
shindo 0:a5367e4d8591 130 LCD_WriteReg(0x0010,0x0000);
shindo 0:a5367e4d8591 131 wait_ms(6);
shindo 0:a5367e4d8591 132 LCD_WriteReg(0x0011,0x6070);
shindo 0:a5367e4d8591 133 wait_ms(6); //0x4030 //���NÒåÊý¾Ý¸ñʽ 16λɫ
shindo 0:a5367e4d8591 134 LCD_WriteReg(0x0005,0x0000);
shindo 0:a5367e4d8591 135 wait_ms(6);
shindo 0:a5367e4d8591 136 LCD_WriteReg(0x0006,0x0000);
shindo 0:a5367e4d8591 137 wait_ms(6);
shindo 0:a5367e4d8591 138 LCD_WriteReg(0x0016,0xEF1C);
shindo 0:a5367e4d8591 139 wait_ms(6);
shindo 0:a5367e4d8591 140 LCD_WriteReg(0x0017,0x0003);
shindo 0:a5367e4d8591 141 wait_ms(6);
shindo 0:a5367e4d8591 142 LCD_WriteReg(0x0007,0x0233);
shindo 0:a5367e4d8591 143 wait_ms(6); //0x0233
shindo 0:a5367e4d8591 144 LCD_WriteReg(0x000B,0x0000);
shindo 0:a5367e4d8591 145 wait_ms(6);
shindo 0:a5367e4d8591 146 LCD_WriteReg(0x000F,0x0000);
shindo 0:a5367e4d8591 147 wait_ms(6); //É�NÃ迪ʼµØÖ·
shindo 0:a5367e4d8591 148 LCD_WriteReg(0x0041,0x0000);
shindo 0:a5367e4d8591 149 wait_ms(6);
shindo 0:a5367e4d8591 150 LCD_WriteReg(0x0042,0x0000);
shindo 0:a5367e4d8591 151 wait_ms(6);
shindo 0:a5367e4d8591 152 LCD_WriteReg(0x0048,0x0000);
shindo 0:a5367e4d8591 153 wait_ms(6);
shindo 0:a5367e4d8591 154 LCD_WriteReg(0x0049,0x013F);
shindo 0:a5367e4d8591 155 wait_ms(6);
shindo 0:a5367e4d8591 156 LCD_WriteReg(0x004A,0x0000);
shindo 0:a5367e4d8591 157 wait_ms(6);
shindo 0:a5367e4d8591 158 LCD_WriteReg(0x004B,0x0000);
shindo 0:a5367e4d8591 159 wait_ms(6);
shindo 0:a5367e4d8591 160 LCD_WriteReg(0x0044,0xEF00);
shindo 0:a5367e4d8591 161 wait_ms(6);
shindo 0:a5367e4d8591 162 LCD_WriteReg(0x0045,0x0000);
shindo 0:a5367e4d8591 163 wait_ms(6);
shindo 0:a5367e4d8591 164 LCD_WriteReg(0x0046,0x013F);
shindo 0:a5367e4d8591 165 wait_ms(6);
shindo 0:a5367e4d8591 166 LCD_WriteReg(0x0030,0x0707);
shindo 0:a5367e4d8591 167 LCD_WriteReg(0x0031,0x0204);
shindo 0:a5367e4d8591 168 LCD_WriteReg(0x0032,0x0204);
shindo 0:a5367e4d8591 169 LCD_WriteReg(0x0033,0x0502);
shindo 0:a5367e4d8591 170 LCD_WriteReg(0x0034,0x0507);
shindo 0:a5367e4d8591 171 LCD_WriteReg(0x0035,0x0204);
shindo 0:a5367e4d8591 172 LCD_WriteReg(0x0036,0x0204);
shindo 0:a5367e4d8591 173 LCD_WriteReg(0x0037,0x0502);
shindo 0:a5367e4d8591 174 LCD_WriteReg(0x003A,0x0302);
shindo 0:a5367e4d8591 175 LCD_WriteReg(0x003B,0x0302);
shindo 0:a5367e4d8591 176 wait_ms(6);
shindo 0:a5367e4d8591 177 LCD_WriteReg(0x0023,0x0000);
shindo 0:a5367e4d8591 178 wait_ms(6);
shindo 0:a5367e4d8591 179 LCD_WriteReg(0x0024,0x0000);
shindo 0:a5367e4d8591 180 wait_ms(6);
shindo 0:a5367e4d8591 181 LCD_WriteReg(0x0025,0x8000);
shindo 0:a5367e4d8591 182 wait_ms(6);
shindo 0:a5367e4d8591 183 LCD_WriteReg(0x004f,0); //ÐÐÊ�~Ö·0
shindo 0:a5367e4d8591 184 LCD_WriteReg(0x004e,0); //ÁÐÊ�~Ö·0
shindo 0:a5367e4d8591 185
shindo 0:a5367e4d8591 186 // LCD_WriteReg(0X07,0X0133);
shindo 0:a5367e4d8591 187 // }
shindo 0:a5367e4d8591 188 LCD_CNT = 0;
shindo 0:a5367e4d8591 189 //LCD_Clear(WHITE);
shindo 0:a5367e4d8591 190 }
shindo 0:a5367e4d8591 191
shindo 0:a5367e4d8591 192 void LCD_WriteRAM_Prepare(void)
shindo 0:a5367e4d8591 193 {
shindo 0:a5367e4d8591 194 LCD_WR_CMD(0x22);
shindo 0:a5367e4d8591 195 }
shindo 0:a5367e4d8591 196
shindo 0:a5367e4d8591 197 void LCD_WriteRAM(u16 RGB_Code)
shindo 0:a5367e4d8591 198 {
shindo 0:a5367e4d8591 199 LCD_WR_DATA(RGB_Code);
shindo 0:a5367e4d8591 200 }
shindo 0:a5367e4d8591 201
shindo 0:a5367e4d8591 202 void LCD_SetCursor(u16 Xpos, u16 Ypos)
shindo 0:a5367e4d8591 203 {
shindo 0:a5367e4d8591 204 // LCD_WriteReg(0x4E, Ypos);
shindo 0:a5367e4d8591 205 // LCD_WriteReg(0x4F, 319 - Xpos);
shindo 0:a5367e4d8591 206
shindo 0:a5367e4d8591 207 LCD_WriteReg(0x20, Ypos);
shindo 0:a5367e4d8591 208 LCD_WriteReg(0x21, 319 - Xpos);
shindo 0:a5367e4d8591 209 }
shindo 0:a5367e4d8591 210
shindo 0:a5367e4d8591 211 void LCD_Clear(u16 Color)
shindo 0:a5367e4d8591 212 {
shindo 0:a5367e4d8591 213 u32 index=0;
shindo 0:a5367e4d8591 214 LCD_SetCursor(0x00,0x0000);//������������
shindo 0:a5367e4d8591 215 LCD_WriteRAM_Prepare(); //�I������GRAM
shindo 0:a5367e4d8591 216 for(index=0; index<76800; index++) {
shindo 0:a5367e4d8591 217 LCD_WR_DATA(Color);
shindo 0:a5367e4d8591 218 }
shindo 0:a5367e4d8591 219 }
shindo 0:a5367e4d8591 220
shindo 0:a5367e4d8591 221 void LCD_Clear2()
shindo 0:a5367e4d8591 222 {
shindo 0:a5367e4d8591 223 u32 i;
shindo 0:a5367e4d8591 224 u32 j;
shindo 0:a5367e4d8591 225 LCD_SetCursor(0x00,0x0000);//&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;
shindo 0:a5367e4d8591 226 LCD_WriteRAM_Prepare(); //&#65533;I&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;GRAM
shindo 0:a5367e4d8591 227 for(i = 0; i < 320; i++) {
shindo 0:a5367e4d8591 228 for (j = 0; j < 240; j++) {
shindo 0:a5367e4d8591 229 if (j < 60) {
shindo 0:a5367e4d8591 230 LCD_WR_DATA(0xf000);
shindo 0:a5367e4d8591 231 } else if (j < 120) {
shindo 0:a5367e4d8591 232 LCD_WR_DATA(0x0f00);
shindo 0:a5367e4d8591 233 } else if (j < 180) {
shindo 0:a5367e4d8591 234 LCD_WR_DATA(0x00f0);
shindo 0:a5367e4d8591 235 } else {
shindo 0:a5367e4d8591 236 LCD_WR_DATA(0x000f);
shindo 0:a5367e4d8591 237 }
shindo 0:a5367e4d8591 238 }
shindo 0:a5367e4d8591 239 }
shindo 0:a5367e4d8591 240 }
shindo 0:a5367e4d8591 241
shindo 0:a5367e4d8591 242 void LCD_Clear3()
shindo 0:a5367e4d8591 243 {
shindo 0:a5367e4d8591 244 u32 i,j;
shindo 0:a5367e4d8591 245 int shift;
shindo 0:a5367e4d8591 246 LCD_WriteReg(0x0016,0x771C);
shindo 0:a5367e4d8591 247 LCD_SetCursor(0x00,0x0000);//&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;
shindo 0:a5367e4d8591 248 LCD_WriteRAM_Prepare(); //&#65533;I&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;GRAM
shindo 0:a5367e4d8591 249 for(i = 0; i < 320; i++) {
shindo 0:a5367e4d8591 250 if (i < 107) {
shindo 0:a5367e4d8591 251 shift = -2;
shindo 0:a5367e4d8591 252 } else if (i < 214) {
shindo 0:a5367e4d8591 253 shift = 3;
shindo 0:a5367e4d8591 254 } else {
shindo 0:a5367e4d8591 255 shift = 9;
shindo 0:a5367e4d8591 256 }
shindo 0:a5367e4d8591 257 for(j = 0; j < 240; j++) {
shindo 0:a5367e4d8591 258 if (shift > 0) {
shindo 0:a5367e4d8591 259 LCD_WR_DATA(((j & 0xfc) << shift));// | ((j & 0xf0) >> 4));
shindo 0:a5367e4d8591 260 } else {
shindo 0:a5367e4d8591 261 LCD_WR_DATA(((j & 0xfc) >> (-shift)));
shindo 0:a5367e4d8591 262 }
shindo 0:a5367e4d8591 263 }
shindo 0:a5367e4d8591 264 }
shindo 0:a5367e4d8591 265 }
shindo 0:a5367e4d8591 266
shindo 0:a5367e4d8591 267 void LCD_Clear4(u16 color)
shindo 0:a5367e4d8591 268 {
shindo 0:a5367e4d8591 269 u32 index=0;
shindo 0:a5367e4d8591 270 LCD_SetCursor(0x00,0x0000);//&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;
shindo 0:a5367e4d8591 271 LCD_WriteRAM_Prepare(); //&#65533;I&#65533;&#65533;&#65533;&#65533;&#65533;&#65533;GRAM
shindo 0:a5367e4d8591 272 LCD_CLR=0;
shindo 0:a5367e4d8591 273 LCD_CLR=1;
shindo 0:a5367e4d8591 274 lcdSerial.write(color);
shindo 0:a5367e4d8591 275 LCD_RS=1;
shindo 0:a5367e4d8591 276 LCD_CS=0;
shindo 0:a5367e4d8591 277 for(index=0; index<9600; index++) {
shindo 0:a5367e4d8591 278 LCD_WR=0;
shindo 0:a5367e4d8591 279 LCD_WR=1;
shindo 0:a5367e4d8591 280 LCD_WR=0;
shindo 0:a5367e4d8591 281 LCD_WR=1;
shindo 0:a5367e4d8591 282 LCD_WR=0;
shindo 0:a5367e4d8591 283 LCD_WR=1;
shindo 0:a5367e4d8591 284 LCD_WR=0;
shindo 0:a5367e4d8591 285 LCD_WR=1;
shindo 0:a5367e4d8591 286 LCD_WR=0;
shindo 0:a5367e4d8591 287 LCD_WR=1;
shindo 0:a5367e4d8591 288 LCD_WR=0;
shindo 0:a5367e4d8591 289 LCD_WR=1;
shindo 0:a5367e4d8591 290 LCD_WR=0;
shindo 0:a5367e4d8591 291 LCD_WR=1;
shindo 0:a5367e4d8591 292 LCD_WR=0;
shindo 0:a5367e4d8591 293 LCD_WR=1;
shindo 0:a5367e4d8591 294 }
shindo 0:a5367e4d8591 295 LCD_CS=1;
shindo 0:a5367e4d8591 296 }
shindo 0:a5367e4d8591 297
shindo 0:a5367e4d8591 298 void LCD_Paint(int pict)
shindo 0:a5367e4d8591 299 {
shindo 0:a5367e4d8591 300 FILE *fp;
shindo 0:a5367e4d8591 301 switch (pict) {
shindo 0:a5367e4d8591 302 case 0:
shindo 0:a5367e4d8591 303 fp = fopen("/local/pict001.pic", "r");
shindo 0:a5367e4d8591 304 break;
shindo 0:a5367e4d8591 305 case 1:
shindo 0:a5367e4d8591 306 fp = fopen("/local/pict002.pic", "r");
shindo 0:a5367e4d8591 307 break;
shindo 0:a5367e4d8591 308 case 2:
shindo 0:a5367e4d8591 309 fp = fopen("/local/pict003.pic", "r");
shindo 0:a5367e4d8591 310 break;
shindo 0:a5367e4d8591 311 default:
shindo 0:a5367e4d8591 312 fp = fopen("/local/pict004.pic", "r");
shindo 0:a5367e4d8591 313 break;
shindo 0:a5367e4d8591 314 }
shindo 0:a5367e4d8591 315 if(fp == NULL) {
shindo 0:a5367e4d8591 316 LCD_Clear4(0);
shindo 0:a5367e4d8591 317 } else {
shindo 0:a5367e4d8591 318 LCD_SetCursor(0x00,0x0000);
shindo 0:a5367e4d8591 319 LCD_WriteRAM_Prepare();
shindo 0:a5367e4d8591 320 for (int i = 0; i < 320; i++) {
shindo 0:a5367e4d8591 321 u16 buffer[240];
shindo 0:a5367e4d8591 322 fread((void*)buffer, sizeof(u8), 480, fp);
shindo 0:a5367e4d8591 323 for(int j = 0; j < 240; j++) {
shindo 0:a5367e4d8591 324 //u16 b = (buffer[j] << 8) | ((buffer[j] >> 8) & 0x0f);
shindo 0:a5367e4d8591 325 LCD_WR_DATA(buffer[j]);
shindo 0:a5367e4d8591 326 }
shindo 0:a5367e4d8591 327 }
shindo 0:a5367e4d8591 328 }
shindo 0:a5367e4d8591 329 fclose(fp);
shindo 0:a5367e4d8591 330 }
shindo 0:a5367e4d8591 331
shindo 0:a5367e4d8591 332 int main()
shindo 0:a5367e4d8591 333 {
shindo 0:a5367e4d8591 334 lcdSerial.format(16, 3);
shindo 0:a5367e4d8591 335 lcdSerial.frequency(100000);
shindo 0:a5367e4d8591 336 LCD_CLR = 1;
shindo 0:a5367e4d8591 337
shindo 0:a5367e4d8591 338 LCD_Init1289();
shindo 0:a5367e4d8591 339 lcdSerial.frequency(30000000);
shindo 0:a5367e4d8591 340
shindo 0:a5367e4d8591 341 LCD_Paint(0);
shindo 0:a5367e4d8591 342
shindo 0:a5367e4d8591 343 EthernetInterface eth;
shindo 0:a5367e4d8591 344 eth.init(); //Use DHCP
shindo 0:a5367e4d8591 345 eth.connect();
shindo 0:a5367e4d8591 346 printf("IP Address is %s\n", eth.getIPAddress());
shindo 0:a5367e4d8591 347
shindo 0:a5367e4d8591 348 TCPSocketServer server;
shindo 0:a5367e4d8591 349 server.bind(ECHO_SERVER_PORT);
shindo 0:a5367e4d8591 350 server.listen();
shindo 0:a5367e4d8591 351
shindo 0:a5367e4d8591 352 while (1) {
shindo 0:a5367e4d8591 353 TCPSocketConnection client;
shindo 0:a5367e4d8591 354 server.accept(client);
shindo 0:a5367e4d8591 355 client.set_blocking(false, 1500);
shindo 0:a5367e4d8591 356 printf("Client connected %s\n", client.get_address());
shindo 0:a5367e4d8591 357
shindo 0:a5367e4d8591 358 char buffer[256];
shindo 0:a5367e4d8591 359
shindo 0:a5367e4d8591 360 while (true) {
shindo 0:a5367e4d8591 361 int n = client.receive(buffer, sizeof(buffer));
shindo 0:a5367e4d8591 362
shindo 0:a5367e4d8591 363 int pict = (buffer[0] - 'H');
shindo 0:a5367e4d8591 364 LCD_Paint(pict);
shindo 0:a5367e4d8591 365 }
shindo 0:a5367e4d8591 366
shindo 0:a5367e4d8591 367 return 0;
shindo 0:a5367e4d8591 368 }
shindo 0:a5367e4d8591 369 }