LCD1289Serial_Ethenet
Dependencies: EthernetInterface FatFileSystemCpp SDFileSystem mbed-rtos mbed
main.cpp@0:a5367e4d8591, 2012-11-07 (annotated)
- Committer:
- shindo
- Date:
- Wed Nov 07 06:42:34 2012 +0000
- Revision:
- 0:a5367e4d8591
LCD1289Serial_Ethenet
Who changed what in which revision?
User | Revision | Line number | New 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);//������������ |
shindo | 0:a5367e4d8591 | 226 | LCD_WriteRAM_Prepare(); //�I������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);//������������ |
shindo | 0:a5367e4d8591 | 248 | LCD_WriteRAM_Prepare(); //�I������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);//������������ |
shindo | 0:a5367e4d8591 | 271 | LCD_WriteRAM_Prepare(); //�I������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 | } |