LPC1768 Mini-DK EasyWeb application with SPI TFT output. Started from EasyWebCR and modified for DM9161 PHY support.

Dependencies:   Mini-DK mbed

This is a very basic EasyWeb application.

No error checking is performed during initialisation.

Information

If the webpage is not reachable or the 'Webserver running' message does not appear, press the reset button on the Mini-DK and wait until the message 'Webserver running' appears.
This happens sometimes when powering up the Mini-DK because the DM9161 reset pin is NOT controlled by the LPC1768, it is directly connected to the reset button.

IP adress/mask/gateway in tcpip.h : 192.168.0.200 / 255.255.255.0 / 192.168.0.1

MAC address in ethmac.h : 6-5-4-3-2-1

Committer:
frankvnk
Date:
Fri Dec 21 15:41:54 2012 +0000
Revision:
0:636056c0b5e1
First version - rewrite from EasyWebCR

Who changed what in which revision?

UserRevisionLine numberNew contents of line
frankvnk 0:636056c0b5e1 1 /* mbed GraphicsDisplay Display Library Base Class
frankvnk 0:636056c0b5e1 2 * Copyright (c) 2007-2009 sford
frankvnk 0:636056c0b5e1 3 * Released under the MIT License: http://mbed.org/license/mit
frankvnk 0:636056c0b5e1 4 */
frankvnk 0:636056c0b5e1 5
frankvnk 0:636056c0b5e1 6 #include "GraphicsDisplay.h"
frankvnk 0:636056c0b5e1 7
frankvnk 0:636056c0b5e1 8 const unsigned char FONT8x8[97][8] = {
frankvnk 0:636056c0b5e1 9 0x08,0x08,0x08,0x00,0x00,0x00,0x00,0x00, // columns, rows, num_bytes_per_char
frankvnk 0:636056c0b5e1 10 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // space 0x20
frankvnk 0:636056c0b5e1 11 0x30,0x78,0x78,0x30,0x30,0x00,0x30,0x00, // !
frankvnk 0:636056c0b5e1 12 0x6C,0x6C,0x6C,0x00,0x00,0x00,0x00,0x00, // "
frankvnk 0:636056c0b5e1 13 0x6C,0x6C,0xFE,0x6C,0xFE,0x6C,0x6C,0x00, // #
frankvnk 0:636056c0b5e1 14 0x18,0x3E,0x60,0x3C,0x06,0x7C,0x18,0x00, // $
frankvnk 0:636056c0b5e1 15 0x00,0x63,0x66,0x0C,0x18,0x33,0x63,0x00, // %
frankvnk 0:636056c0b5e1 16 0x1C,0x36,0x1C,0x3B,0x6E,0x66,0x3B,0x00, // &
frankvnk 0:636056c0b5e1 17 0x30,0x30,0x60,0x00,0x00,0x00,0x00,0x00, // '
frankvnk 0:636056c0b5e1 18 0x0C,0x18,0x30,0x30,0x30,0x18,0x0C,0x00, // (
frankvnk 0:636056c0b5e1 19 0x30,0x18,0x0C,0x0C,0x0C,0x18,0x30,0x00, // )
frankvnk 0:636056c0b5e1 20 0x00,0x66,0x3C,0xFF,0x3C,0x66,0x00,0x00, // *
frankvnk 0:636056c0b5e1 21 0x00,0x30,0x30,0xFC,0x30,0x30,0x00,0x00, // +
frankvnk 0:636056c0b5e1 22 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x30, // ,
frankvnk 0:636056c0b5e1 23 0x00,0x00,0x00,0x7E,0x00,0x00,0x00,0x00, // -
frankvnk 0:636056c0b5e1 24 0x00,0x00,0x00,0x00,0x00,0x18,0x18,0x00, // .
frankvnk 0:636056c0b5e1 25 0x03,0x06,0x0C,0x18,0x30,0x60,0x40,0x00, // / (forward slash)
frankvnk 0:636056c0b5e1 26 0x3E,0x63,0x63,0x6B,0x63,0x63,0x3E,0x00, // 0 0x30
frankvnk 0:636056c0b5e1 27 0x18,0x38,0x58,0x18,0x18,0x18,0x7E,0x00, // 1
frankvnk 0:636056c0b5e1 28 0x3C,0x66,0x06,0x1C,0x30,0x66,0x7E,0x00, // 2
frankvnk 0:636056c0b5e1 29 0x3C,0x66,0x06,0x1C,0x06,0x66,0x3C,0x00, // 3
frankvnk 0:636056c0b5e1 30 0x0E,0x1E,0x36,0x66,0x7F,0x06,0x0F,0x00, // 4
frankvnk 0:636056c0b5e1 31 0x7E,0x60,0x7C,0x06,0x06,0x66,0x3C,0x00, // 5
frankvnk 0:636056c0b5e1 32 0x1C,0x30,0x60,0x7C,0x66,0x66,0x3C,0x00, // 6
frankvnk 0:636056c0b5e1 33 0x7E,0x66,0x06,0x0C,0x18,0x18,0x18,0x00, // 7
frankvnk 0:636056c0b5e1 34 0x3C,0x66,0x66,0x3C,0x66,0x66,0x3C,0x00, // 8
frankvnk 0:636056c0b5e1 35 0x3C,0x66,0x66,0x3E,0x06,0x0C,0x38,0x00, // 9
frankvnk 0:636056c0b5e1 36 0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x00, // :
frankvnk 0:636056c0b5e1 37 0x00,0x18,0x18,0x00,0x00,0x18,0x18,0x30, // ;
frankvnk 0:636056c0b5e1 38 0x0C,0x18,0x30,0x60,0x30,0x18,0x0C,0x00, // <
frankvnk 0:636056c0b5e1 39 0x00,0x00,0x7E,0x00,0x00,0x7E,0x00,0x00, // =
frankvnk 0:636056c0b5e1 40 0x30,0x18,0x0C,0x06,0x0C,0x18,0x30,0x00, // >
frankvnk 0:636056c0b5e1 41 0x3C,0x66,0x06,0x0C,0x18,0x00,0x18,0x00, // ?
frankvnk 0:636056c0b5e1 42 0x3E,0x63,0x6F,0x69,0x6F,0x60,0x3E,0x00, // @ 0x40
frankvnk 0:636056c0b5e1 43 0x18,0x3C,0x66,0x66,0x7E,0x66,0x66,0x00, // A
frankvnk 0:636056c0b5e1 44 0x7E,0x33,0x33,0x3E,0x33,0x33,0x7E,0x00, // B
frankvnk 0:636056c0b5e1 45 0x1E,0x33,0x60,0x60,0x60,0x33,0x1E,0x00, // C
frankvnk 0:636056c0b5e1 46 0x7C,0x36,0x33,0x33,0x33,0x36,0x7C,0x00, // D
frankvnk 0:636056c0b5e1 47 0x7F,0x31,0x34,0x3C,0x34,0x31,0x7F,0x00, // E
frankvnk 0:636056c0b5e1 48 0x7F,0x31,0x34,0x3C,0x34,0x30,0x78,0x00, // F
frankvnk 0:636056c0b5e1 49 0x1E,0x33,0x60,0x60,0x67,0x33,0x1F,0x00, // G
frankvnk 0:636056c0b5e1 50 0x66,0x66,0x66,0x7E,0x66,0x66,0x66,0x00, // H
frankvnk 0:636056c0b5e1 51 0x3C,0x18,0x18,0x18,0x18,0x18,0x3C,0x00, // I
frankvnk 0:636056c0b5e1 52 0x0F,0x06,0x06,0x06,0x66,0x66,0x3C,0x00, // J
frankvnk 0:636056c0b5e1 53 0x73,0x33,0x36,0x3C,0x36,0x33,0x73,0x00, // K
frankvnk 0:636056c0b5e1 54 0x78,0x30,0x30,0x30,0x31,0x33,0x7F,0x00, // L
frankvnk 0:636056c0b5e1 55 0x63,0x77,0x7F,0x7F,0x6B,0x63,0x63,0x00, // M
frankvnk 0:636056c0b5e1 56 0x63,0x73,0x7B,0x6F,0x67,0x63,0x63,0x00, // N
frankvnk 0:636056c0b5e1 57 0x3E,0x63,0x63,0x63,0x63,0x63,0x3E,0x00, // O
frankvnk 0:636056c0b5e1 58 0x7E,0x33,0x33,0x3E,0x30,0x30,0x78,0x00, // P 0x50
frankvnk 0:636056c0b5e1 59 0x3C,0x66,0x66,0x66,0x6E,0x3C,0x0E,0x00, // Q
frankvnk 0:636056c0b5e1 60 0x7E,0x33,0x33,0x3E,0x36,0x33,0x73,0x00, // R
frankvnk 0:636056c0b5e1 61 0x3C,0x66,0x30,0x18,0x0C,0x66,0x3C,0x00, // S
frankvnk 0:636056c0b5e1 62 0x7E,0x5A,0x18,0x18,0x18,0x18,0x3C,0x00, // T
frankvnk 0:636056c0b5e1 63 0x66,0x66,0x66,0x66,0x66,0x66,0x7E,0x00, // U
frankvnk 0:636056c0b5e1 64 0x66,0x66,0x66,0x66,0x66,0x3C,0x18,0x00, // V
frankvnk 0:636056c0b5e1 65 0x63,0x63,0x63,0x6B,0x7F,0x77,0x63,0x00, // W
frankvnk 0:636056c0b5e1 66 0x63,0x63,0x36,0x1C,0x1C,0x36,0x63,0x00, // X
frankvnk 0:636056c0b5e1 67 0x66,0x66,0x66,0x3C,0x18,0x18,0x3C,0x00, // Y
frankvnk 0:636056c0b5e1 68 0x7F,0x63,0x46,0x0C,0x19,0x33,0x7F,0x00, // Z
frankvnk 0:636056c0b5e1 69 0x3C,0x30,0x30,0x30,0x30,0x30,0x3C,0x00, // [
frankvnk 0:636056c0b5e1 70 0x60,0x30,0x18,0x0C,0x06,0x03,0x01,0x00, // \ (back slash)
frankvnk 0:636056c0b5e1 71 0x3C,0x0C,0x0C,0x0C,0x0C,0x0C,0x3C,0x00, // ]
frankvnk 0:636056c0b5e1 72 0x08,0x1C,0x36,0x63,0x00,0x00,0x00,0x00, // ^
frankvnk 0:636056c0b5e1 73 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xFF, // _
frankvnk 0:636056c0b5e1 74 0x18,0x18,0x0C,0x00,0x00,0x00,0x00,0x00, // ` 0x60
frankvnk 0:636056c0b5e1 75 0x00,0x00,0x3C,0x06,0x3E,0x66,0x3B,0x00, // a
frankvnk 0:636056c0b5e1 76 0x70,0x30,0x3E,0x33,0x33,0x33,0x6E,0x00, // b
frankvnk 0:636056c0b5e1 77 0x00,0x00,0x3C,0x66,0x60,0x66,0x3C,0x00, // c
frankvnk 0:636056c0b5e1 78 0x0E,0x06,0x3E,0x66,0x66,0x66,0x3B,0x00, // d
frankvnk 0:636056c0b5e1 79 0x00,0x00,0x3C,0x66,0x7E,0x60,0x3C,0x00, // e
frankvnk 0:636056c0b5e1 80 0x1C,0x36,0x30,0x78,0x30,0x30,0x78,0x00, // f
frankvnk 0:636056c0b5e1 81 0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x7C, // g
frankvnk 0:636056c0b5e1 82 0x70,0x30,0x36,0x3B,0x33,0x33,0x73,0x00, // h
frankvnk 0:636056c0b5e1 83 0x18,0x00,0x38,0x18,0x18,0x18,0x3C,0x00, // i
frankvnk 0:636056c0b5e1 84 0x06,0x00,0x06,0x06,0x06,0x66,0x66,0x3C, // j
frankvnk 0:636056c0b5e1 85 0x70,0x30,0x33,0x36,0x3C,0x36,0x73,0x00, // k
frankvnk 0:636056c0b5e1 86 0x38,0x18,0x18,0x18,0x18,0x18,0x3C,0x00, // l
frankvnk 0:636056c0b5e1 87 0x00,0x00,0x66,0x7F,0x7F,0x6B,0x63,0x00, // m
frankvnk 0:636056c0b5e1 88 0x00,0x00,0x7C,0x66,0x66,0x66,0x66,0x00, // n
frankvnk 0:636056c0b5e1 89 0x00,0x00,0x3C,0x66,0x66,0x66,0x3C,0x00, // o
frankvnk 0:636056c0b5e1 90 0x00,0x00,0x6E,0x33,0x33,0x3E,0x30,0x78, // p
frankvnk 0:636056c0b5e1 91 0x00,0x00,0x3B,0x66,0x66,0x3E,0x06,0x0F, // q
frankvnk 0:636056c0b5e1 92 0x00,0x00,0x6E,0x3B,0x33,0x30,0x78,0x00, // r
frankvnk 0:636056c0b5e1 93 0x00,0x00,0x3E,0x60,0x3C,0x06,0x7C,0x00, // s
frankvnk 0:636056c0b5e1 94 0x08,0x18,0x3E,0x18,0x18,0x1A,0x0C,0x00, // t
frankvnk 0:636056c0b5e1 95 0x00,0x00,0x66,0x66,0x66,0x66,0x3B,0x00, // u
frankvnk 0:636056c0b5e1 96 0x00,0x00,0x66,0x66,0x66,0x3C,0x18,0x00, // v
frankvnk 0:636056c0b5e1 97 0x00,0x00,0x63,0x6B,0x7F,0x7F,0x36,0x00, // w
frankvnk 0:636056c0b5e1 98 0x00,0x00,0x63,0x36,0x1C,0x36,0x63,0x00, // x
frankvnk 0:636056c0b5e1 99 0x00,0x00,0x66,0x66,0x66,0x3E,0x06,0x7C, // y
frankvnk 0:636056c0b5e1 100 0x00,0x00,0x7E,0x4C,0x18,0x32,0x7E,0x00, // z
frankvnk 0:636056c0b5e1 101 0x0E,0x18,0x18,0x70,0x18,0x18,0x0E,0x00, // {
frankvnk 0:636056c0b5e1 102 0x0C,0x0C,0x0C,0x00,0x0C,0x0C,0x0C,0x00, // |
frankvnk 0:636056c0b5e1 103 0x70,0x18,0x18,0x0E,0x18,0x18,0x70,0x00, // }
frankvnk 0:636056c0b5e1 104 0x3B,0x6E,0x00,0x00,0x00,0x00,0x00,0x00, // ~
frankvnk 0:636056c0b5e1 105 0x1C,0x36,0x36,0x1C,0x00,0x00,0x00,0x00}; // DEL
frankvnk 0:636056c0b5e1 106
frankvnk 0:636056c0b5e1 107 GraphicsDisplay::GraphicsDisplay(const char *name):TextDisplay(name) {
frankvnk 0:636056c0b5e1 108 foreground(0xFFFF);
frankvnk 0:636056c0b5e1 109 background(0x0000);
frankvnk 0:636056c0b5e1 110 }
frankvnk 0:636056c0b5e1 111
frankvnk 0:636056c0b5e1 112 void GraphicsDisplay::character(int column, int row, int value) {
frankvnk 0:636056c0b5e1 113 blitbit(column * 8, row * 8, 8, 8, (char*)&(FONT8x8[value - 0x1F][0]));
frankvnk 0:636056c0b5e1 114 }
frankvnk 0:636056c0b5e1 115
frankvnk 0:636056c0b5e1 116 void GraphicsDisplay::window(int x, int y, int w, int h) {
frankvnk 0:636056c0b5e1 117 // current pixel location
frankvnk 0:636056c0b5e1 118 _x = x;
frankvnk 0:636056c0b5e1 119 _y = y;
frankvnk 0:636056c0b5e1 120 // window settings
frankvnk 0:636056c0b5e1 121 _x1 = x;
frankvnk 0:636056c0b5e1 122 _x2 = x + w - 1;
frankvnk 0:636056c0b5e1 123 _y1 = y;
frankvnk 0:636056c0b5e1 124 _y2 = y + h - 1;
frankvnk 0:636056c0b5e1 125 }
frankvnk 0:636056c0b5e1 126
frankvnk 0:636056c0b5e1 127 void GraphicsDisplay::putp(int colour) {
frankvnk 0:636056c0b5e1 128 // put pixel at current pixel location
frankvnk 0:636056c0b5e1 129 pixel(_x, _y, colour);
frankvnk 0:636056c0b5e1 130 // update pixel location based on window settings
frankvnk 0:636056c0b5e1 131 _x++;
frankvnk 0:636056c0b5e1 132 if(_x > _x2) {
frankvnk 0:636056c0b5e1 133 _x = _x1;
frankvnk 0:636056c0b5e1 134 _y++;
frankvnk 0:636056c0b5e1 135 if(_y > _y2) {
frankvnk 0:636056c0b5e1 136 _y = _y1;
frankvnk 0:636056c0b5e1 137 }
frankvnk 0:636056c0b5e1 138 }
frankvnk 0:636056c0b5e1 139 }
frankvnk 0:636056c0b5e1 140
frankvnk 0:636056c0b5e1 141 void GraphicsDisplay::fill(int x, int y, int w, int h, int colour) {
frankvnk 0:636056c0b5e1 142 window(x, y, w, h);
frankvnk 0:636056c0b5e1 143 for(int i=0; i<w*h; i++) {
frankvnk 0:636056c0b5e1 144 putp(colour);
frankvnk 0:636056c0b5e1 145 }
frankvnk 0:636056c0b5e1 146 }
frankvnk 0:636056c0b5e1 147
frankvnk 0:636056c0b5e1 148 void GraphicsDisplay::cls() {
frankvnk 0:636056c0b5e1 149 fill(0, 0, width(), height(), _background);
frankvnk 0:636056c0b5e1 150 }
frankvnk 0:636056c0b5e1 151
frankvnk 0:636056c0b5e1 152 void GraphicsDisplay::blit(int x, int y, int w, int h, const int *colour) {
frankvnk 0:636056c0b5e1 153 window(x, y, w, h);
frankvnk 0:636056c0b5e1 154 for(int i=0; i<w*h; i++) {
frankvnk 0:636056c0b5e1 155 putp(colour[i]);
frankvnk 0:636056c0b5e1 156 }
frankvnk 0:636056c0b5e1 157 }
frankvnk 0:636056c0b5e1 158
frankvnk 0:636056c0b5e1 159 void GraphicsDisplay::blitbit(int x, int y, int w, int h, const char* colour) {
frankvnk 0:636056c0b5e1 160 window(x, y, w, h);
frankvnk 0:636056c0b5e1 161 for(int i = 0; i < w*h; i++) {
frankvnk 0:636056c0b5e1 162 char byte = colour[i >> 3];
frankvnk 0:636056c0b5e1 163 int offset = i & 0x7;
frankvnk 0:636056c0b5e1 164 int c = ((byte << offset) & 0x80) ? _foreground : _background;
frankvnk 0:636056c0b5e1 165 putp(c);
frankvnk 0:636056c0b5e1 166 }
frankvnk 0:636056c0b5e1 167 }
frankvnk 0:636056c0b5e1 168
frankvnk 0:636056c0b5e1 169 int GraphicsDisplay::columns() {
frankvnk 0:636056c0b5e1 170 return width() / 8;
frankvnk 0:636056c0b5e1 171 }
frankvnk 0:636056c0b5e1 172
frankvnk 0:636056c0b5e1 173 int GraphicsDisplay::rows() {
frankvnk 0:636056c0b5e1 174 return height() / 8;
frankvnk 0:636056c0b5e1 175 }
frankvnk 0:636056c0b5e1 176