PCD8544 multiscreen
Revision 0:61dcd2c0299a, committed 2012-06-15
- Comitter:
- Wimpie
- Date:
- Fri Jun 15 18:37:00 2012 +0000
- Commit message:
Changed in this revision
diff -r 000000000000 -r 61dcd2c0299a PCD8544MS.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PCD8544MS.cpp Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,925 @@ +/* mbed PCD8544 - Graphic Library for driving monochrome displays based on + * the PCD8544 48 x 84 pixels matrix LCD controller/driver + * used in Nokia 3310, 3315, 3330, 3350, 3410, 3210, 5110, 5120, 5130, 5160, 6110, 6150 + * + * Copyright (c) 2011, Wim De Roeve + * partial port of the code found on http://serdisplib.sourceforge.net/ser/pcd8544.html#links + * and by Petras Saduikis <petras@petras.co.uk> + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the updaSoftware, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ + +#include "PCD8544MS.h" + +#include "fonts/font_3x5.h" +#include "fonts/font_5x7.h" +#include "fonts/font_6x8.h" +#include "fonts/font_8x8.h" +#include "fonts/font_8x12.h" +#include "fonts/font_16x20.h" +#include "fonts/font_16x24.h" + +#include "DebugTrace.h" +#include "sstream" +#include "stdio.h" +#include "stringman.h" + +#define GLCD_CS6_ON 0x01 //P0 +#define GLCD_RESET_ON 0x02 //P1 +#define GLCD_CS1_ON 0x04 //P2 +#define GLCD_CS5_ON 0x08 //P3 +#define GLCD_DC_ON 0x10 //P4 +#define GLCD_CS2_ON 0x20 //P5 +#define GLCD_CS3_ON 0x40 //P6 +#define GLCD_CS4_ON 0x80 //P7 + +#define TLCD_RS_ON 0x1000 //P12 +#define TLCD_E1_ON 0x2000 //P13 +#define TLCD_E2_ON 0x4000 //P14 +#define TLCD_BACKLIGHT_ON 0x8000 //P15 + +/* Display ON/OFF Control defines */ +#define DON 0x0F //0b00001111 Display on +#define DOFF 0x0B //0b00001011 Display off +#define CURSOR_ON 0x0F //0b00001111 Cursor on +#define CURSOR_OFF OxOD //0b00001101 Cursor off +#define BLINK_ON 0x0F //0b00001111 Cursor Blink +#define BLINK_OFF 0x0E //0b00001110 Cursor No Blink + +/* Cursor or Display Shift defines */ +#define SHIFT_CUR_LEFT Ox13 //0b00010011 Cursor shifts to the left +#define SHIFT_CUR_RIGHT Ox17 //0b00010111 Cursor shifts to the right +#define SHIFT_DISP_LEFT Ox1B //0b00011011 Display shifts to the left +#define SHIFT_DISP_RIGHT 0x1F //0b00011111 Display shifts to the right + +/* Function Set defines */ +#define EIGHT_BITMODE 0x03 //0b00000011 8-bit Interface D4-D7 +#define FOUR_BITMODE 0x02 //0b00000010 4-bit Interface D4-D7 +#define LINE_5X7 0x30 //0b00110000 +#define LINE_5X10 0x34 //0b00110100 +#define LINES_5X7 0x38 //0b00111000 + +// Addtional define to support display mode + +#define DISP_FLIP_NONE 0x00 //0b00111100 No flip +#define CLEAR_LCD 0x01 //0b00000001 + +/* Number of pixels on the LCD */ + +#define HIGH 1 +#define LOW 0 +#define TRUE 1 +#define FALSE 0 + +/* Display control command */ +#define EXTENDEDSET 0x21 +#define STANDARDSET 0x20 +#define DISPLAYOFF 0x08 // switch off display +#define ALL_SEG_ON 0x09 // switch on display and set to all pixels on +#define NORMAL_MODE 0x0C // NOREVERSE +#define INVERSE_MODE 0x0D // REVERSE + +#define SET_ADDRES_X 0x80 +#define SET_ADDRES_Y 0x40 + + +DebugTrace pc_PCD8544(ON, TO_SERIAL); + +/* + PCD8544 from Philips Semiconductors is + 48 x 84 pixels monochrome matrix LCD controller/driver + + generic for LPH7366, LPH7677, and LPH7779; no backlight + + model name (of display) type used in cellphones + LPH 7366 2 Nokia 5110, 5120, 5130, 5160, 6110, 6150 + LPH 7677 1 Nokia 3210 + LPH 7779 1 Nokia 3310, 3315, 3330, 3350, 3410 + + + +-------------------------+ + | 1 2 3 4 5 6 7 8 | + | # # # # # # # # | + | ===#=#=#=#=#=#=#=#=== | Red 1 .. VDD - chip power supply +3.3V + +--=====================--+ Green 2 .. SCLK - serial clock line of LCD + | | Yellow 3 .. SI - serial data input of LCD + | | Gray 4 .. D/C - command/data switch + | rear view | Blue 5 .. /CS - active low chip select + | connector is visible | Black 6 .. GND - for VDD + | | 7 .. Vout - output of display-internal dc/dc converter + | LPH7779 | White 8 .. /RES - active low reset + | | + +-------------------------+ + +*/ + + +PCD8544MS::PCD8544MS(PinName mosi, PinName miso, PinName sclk, PinName sda, PinName scl,int i2cAddress, bool TextLCD, bool backlight): + _spi(mosi, miso, sclk),_i2c(sda, scl) { + + _i2cAddress = i2cAddress; +// _type = type; + + if (TextLCD) { + TLCD_reset(); + _columns = 16; + _rows = 2; + _backlight=backlight; + } + + GLCD_reset(); +} + +void PCD8544MS::writeI2CByte(int data) { + char cmd[2]; + cmd[0] = (data & 0xFF); + cmd[1] = (data >> 8); + _i2c.write(_i2cAddress, cmd, 2); + // pc_PCD8544.traceOut("I2C=%i ",data); + +} + +// ############# TEXTLCD FUNCTIONS ################### + +void PCD8544MS::TLCD_reset() { + for (int i=0; i<3; i++) { + TLCD_writeNibble(EIGHT_BITMODE,false); + wait(0.00164); // this command takes 1.64ms, so wait for it + } + TLCD_writeNibble(FOUR_BITMODE,false); // 4-bit mode + + TLCD_writeCommand(0x28); // Function set 001 BW N F - - + TLCD_writeCommand(0x0C); + TLCD_writeCommand(0x6); // Cursor Direction and Display Shift : 0000 01 CD S (CD 0-left, 1-right S(hift) 0-no, 1-yes +} + +void PCD8544MS::TLCD_writeNibble(int data, bool rs) { + + data = ((data & 0xF) << 8) || GLCD_RESET_ON || GLCD_CS1_ON || GLCD_CS2_ON || GLCD_CS3_ON || GLCD_CS4_ON || GLCD_CS5_ON || GLCD_CS6_ON ; + + if (_backlight) + data= data | TLCD_BACKLIGHT_ON; + + if (rs) { + data = data | TLCD_RS_ON; // set rs bit + } + + writeI2CByte(data | TLCD_E1_ON); // E=1 + + wait(0.000040f); + writeI2CByte(data); // E=0 + + wait(0.000040f); + writeI2CByte(data | TLCD_E1_ON); // E=1 +} + + +void PCD8544MS::TLCD_writeByte(int data, bool rs) { + TLCD_writeNibble(data >> 4 , rs); + TLCD_writeNibble(data >> 0 , rs); +} + +void PCD8544MS::TLCD_writeCommand(int command) { + // RS = 0; + TLCD_writeByte(command,false); +} + +void PCD8544MS::TLCD_writeData(int data) { + //RS = 1 + TLCD_writeByte(data,true); + + _column++; + if (_column >= _columns) { + TLCD_newline(); + } +} + +int PCD8544MS::_putc(int value) { + if (value == '\n') { + TLCD_newline(); + } else { + TLCD_writeData(value); + } + return value; +} + +int PCD8544MS::_getc() { + return 0; +} + +void PCD8544MS::TLCD_backlight(bool status) { + _backlight=status; + if (_backlight) + writeI2CByte(TLCD_BACKLIGHT_ON | TLCD_E1_ON | TLCD_E2_ON | GLCD_CS1_ON); + else + writeI2CByte(TLCD_E1_ON | TLCD_E2_ON | GLCD_CS1_ON); +} + + +void PCD8544MS::TLCD_newline() { + _column = 0; + _row++; + if (_row >= _rows) { + _row = 0; + } + TLCD_locate(_column, _row); +} + + +void PCD8544MS::TLCD_locate(int column, int row) { + if (column < 0 || column >= _columns || row < 0 || row >= _rows) { + error("locate(%d,%d) out of range on %dx%d display", column, row, _columns, _rows); + return; + } + + _row = row; + _column = column; + int address = 0x80 + (_row * 40) + _column; // memory starts at 0x80, and is 40 chars long per row + // pc_LCD.traceOut("locate %dx%d\r\n", column, row); + TLCD_writeCommand(address); +} + + +void PCD8544MS::TLCD_cls() { + TLCD_writeCommand(0x01); // Clear Display + wait(0.00164f); // This command takes 1.64 ms + TLCD_locate(0, 0); +} + + + +// ############# GRAPHICLCD FUNCTIONS ################### + +void PCD8544MS::GLCD_reset() { + + /* reset lcd + + After reset, the LCD driver has the following state: + - Power-down mode (bit PD = 1) + - Horizontal addressing (bit V = 0) + - normal instruction set (bit H = 0) + - Display blank (bit E = D = 0) + - Address counter X6 to X0 = 0; Y2 to Y0 = 0 + - Temperature control mode (TC1 TC0 = 0) + - Bias system (BS2 to BS0 = 0) + - VLCD is equal to 0, the HV generator is switched off + (VOP6 to VOP0 = 0) + - After power-on, the RAM contents are undefined. + */ + + + GLCD_writeI2C(HIGH,LOW,HIGH,0); // all screens + + _spi.format(8,0); + _spi.frequency(1000000); + + pc_PCD8544.traceOut("\r\nreset GLCD "); + + //_cs=HIGH; + //_reset=HIGH; + + + // for (int i=1;i<=maxscreen;i++) { + + wait_ms(1); + //_reset=LOW; + GLCD_writeI2C(LOW,LOW,HIGH,0); + + wait_ms(1); + //_reset = HIGH; + GLCD_writeI2C(HIGH,LOW,HIGH,0); + + GLCD_writeCmd(EXTENDEDSET,1,0); // folowing commands are extended ones + GLCD_writeCmd(0xc8,0,0); // Set Voltage 0x80+value: set contrast + GLCD_writeCmd(0x06,0,0); // set temp coefficient + GLCD_writeCmd(0x13,0,0); // set BIAS mode 1:48 + GLCD_writeCmd(STANDARDSET,0,0); // STANDARDSET: following commands are standard ones + + GLCD_writeCmd(NORMAL_MODE,2,0); + _LoMark = 0; + _HiMark = LCD_CACHE_SIZE - 1; + + GLCD_cls(0,TRUE); +} + +void PCD8544MS::GLCD_writeCmd(BYTE data, BYTE CF, int screen) { + //_cs = LOW; + //_dc = LOW; + // _spi.write(data); + +// pc_PCD8544.traceOut("\r\n %i %i %i ",(CF & 1),data,(CF & 2)); + + if ((CF & 1)==1) { + GLCD_writeI2C(HIGH,LOW,LOW,screen); + wait_ms(1); + } + + _spi.write(data); + + if ((CF & 2)==2) { + GLCD_writeI2C(HIGH,LOW,HIGH,screen); + } + + //_cs = HIGH; + +} + +void PCD8544MS::GLCD_writeData(BYTE data, BYTE CF, int screen) { + // _cs = LOW; + //_dc = HIGH; + //_spi.write(data); + + if ((CF & 1)==1) { + GLCD_writeI2C(HIGH,HIGH,LOW,screen); + wait_ms(1); + } + + _spi.write(data); + + if ((CF & 2)==2) { + GLCD_writeI2C(HIGH,HIGH,HIGH,screen); + } + + // _cs = HIGH; + +} + +void PCD8544MS::GLCD_writeI2C(bool reset, bool dc, bool cs,int screen) { + + int cb=TLCD_E1_ON | TLCD_E2_ON; // prevent TextLCD for + + if (reset==HIGH) cb = cb | GLCD_RESET_ON; + if (dc==HIGH) cb = cb | GLCD_DC_ON; + + if (cs==HIGH) { + cb = cb | GLCD_CS1_ON | GLCD_CS2_ON | GLCD_CS3_ON | GLCD_CS4_ON | GLCD_CS5_ON | GLCD_CS6_ON ; + } else { + switch (screen) { + case 1: { + cb = cb | GLCD_CS2_ON | GLCD_CS3_ON | GLCD_CS4_ON | GLCD_CS5_ON | GLCD_CS6_ON; + break; + } + case 2: { + cb = cb | GLCD_CS1_ON | GLCD_CS3_ON | GLCD_CS4_ON | GLCD_CS5_ON | GLCD_CS6_ON; + break; + } + case 3: { + cb = cb | GLCD_CS1_ON | GLCD_CS2_ON | GLCD_CS4_ON | GLCD_CS5_ON | GLCD_CS6_ON; + break; + } + case 4: { + cb = cb | GLCD_CS1_ON | GLCD_CS2_ON | GLCD_CS3_ON | GLCD_CS5_ON | GLCD_CS6_ON; + break; + } + case 5: { + cb = cb | GLCD_CS1_ON | GLCD_CS2_ON | GLCD_CS3_ON | GLCD_CS4_ON | GLCD_CS6_ON; + break; + } + case 6: { + cb = cb | GLCD_CS1_ON | GLCD_CS2_ON | GLCD_CS3_ON | GLCD_CS4_ON | GLCD_CS5_ON; + break; + } + default: { + break; + } + } + } + + + writeI2CByte(cb); + +} + +void PCD8544MS::GLCD_close() { + GLCD_writeCmd(DISPLAYOFF,3,0); + GLCD_writeI2C(HIGH,HIGH,HIGH,0); +// _cs = HIGH; +// _reset = HIGH; + +} + +// GRAPHICAL functions + +void PCD8544MS::GLCD_cls(int screen,bool fupdate) { +// pc_PCD8544.traceOut("\r\ncls %i ",LCD_CACHE_SIZE); + + for (int i = 0; i < LCD_CACHE_SIZE ; i++) { + // pc_PCD8544.traceOut("%i",i); + LcdCache[i]=0x00; + } + _LoMark = 0; + _HiMark = LCD_CACHE_SIZE - 1; + +// pc_PCD8544.traceOut("\r\nfupdate"); + if (fupdate) + GLCD_update(screen); +} + +void PCD8544MS::GLCD_update(int screen) { +// pc_PCD8544.traceOut("\r\nupdate"); + if ( _LoMark < 0 ) + _LoMark = 0; + else if ( _LoMark >= LCD_CACHE_SIZE ) + _LoMark = LCD_CACHE_SIZE - 1; + if ( _HiMark < 0 ) + _HiMark = 0; + else if ( _HiMark >= LCD_CACHE_SIZE ) + _HiMark = LCD_CACHE_SIZE - 1; + + GLCD_writeCmd(SET_ADDRES_X | (_LoMark % LCD_X_RES),1,screen); + GLCD_writeCmd(SET_ADDRES_Y | (_LoMark / LCD_X_RES),2,screen); + + GLCD_writeI2C(HIGH,HIGH,LOW,screen); + wait_ms(1); + + for (int i = _LoMark; i <= _HiMark; i++ ) { + _spi.write(LcdCache[i]); + //writeData( ); + } + GLCD_writeI2C(HIGH,HIGH,HIGH,screen); + _LoMark = LCD_CACHE_SIZE - 1; + _HiMark = 0; +} + + + +void PCD8544MS::GLCD_locate(BYTE x0, BYTE y0) { + LcdCacheIdx = x0*LCD_BANKS + y0 * LCD_X_RES; +} + +// Bitmap + +void PCD8544MS::GLCD_drawBitmap(BYTE x0, BYTE y0, const unsigned char* bitmap, BYTE bmpXSize, BYTE bmpYSize,BYTE fupdate,int screen) { + BYTE row; + // pc_PCD8544.traceOut("\r\ndrawbitmap"); + + if (0 == bmpYSize % 8) + row = bmpYSize/8; + else + row = bmpYSize/8 + 1; + + _LoMark= 0; + _HiMark= LCD_CACHE_SIZE - 1; + + for (BYTE n = 0; n < row; n++) { + GLCD_locate(x0, y0); + + for (BYTE i = 0; i < bmpXSize; i++) { + LcdCache[LcdCacheIdx+ i]=bitmap[i + (n * bmpXSize)]; + } + y0++; + } + if (fupdate==TRUE) + GLCD_update(screen); +} + +void PCD8544MS::GLCD_writeString(BYTE x0, BYTE y0, char* string, eFonts font,ePixelMode pmode,eDisplayMode dmode,eSpaceMode smode, BYTE fupdate,int screen) { + +// pc_PCD8544.traceOut("\r\nwriteString"); + GLCD_locate(x0, y0); + chooseFont(font); + + while (*string) { + GLCD_writeChar(x0,y0,*string++,font,pmode, dmode, FALSE,screen); + x0+=_font_width; // width +1; + if (smode==SPACE_NORMAL) + x0++; + } + if (fupdate==TRUE) + GLCD_update(screen); +} + +void PCD8544MS::chooseFont(eFonts font) { + + switch (font) { + + case VERYSMALLFONT: { + _font_width = FONT3x5_WIDTH; + _font_height = FONT3x5_HEIGHT; + _font_start = FONT3x5_START; + _font_end = FONT3x5_END; + _font_bytes = FONT3x5_BYTES; + + _pFont = (unsigned char*) font_3x5; + + break; + } + case TINYFONT: { + _font_width = FONT5x7_WIDTH; + _font_height = FONT5x7_HEIGHT; + _font_start = FONT5x7_START; + _font_end = FONT5x7_END; + _font_bytes = FONT5x7_BYTES; + + _pFont = (unsigned char*) font_5x7; + + break; + } + + case SMALLFONT: { + _font_width = FONT6x8_WIDTH; + _font_height = FONT6x8_HEIGHT; + _font_start = FONT6x8_START; + _font_end = FONT6x8_END; + _font_bytes = FONT6x8_BYTES; + + _pFont = (unsigned char*) font_6x8; + + break; + } + case NORMALFONT: { + _font_width = FONT8x8_WIDTH; + _font_height = FONT8x8_HEIGHT; + _font_start = FONT8x8_START; + _font_end = FONT8x8_END; + _font_bytes = FONT8x8_BYTES; + + _pFont = (unsigned char*) font_8x8; + + break; + } + case BIGFONT: { + _font_width = FONT8x12_WIDTH; + _font_height = FONT8x12_HEIGHT; + _font_start = FONT8x12_START; + _font_end = FONT8x12_END; + _font_bytes = FONT8x12_BYTES; + + _pFont = (unsigned char*) font_8x12; + + break; + } + + case TIMENUMBERFONT: { + _font_width = FONT16x20_WIDTH; + _font_height = FONT16x20_HEIGHT; + _font_start = FONT16x20_START; + _font_end = FONT16x20_END; + _font_bytes = FONT16x20_BYTES; + + _pFont = (unsigned char*) font_16x20; + + break; + } + + case BIGNUMBERFONT: { + _font_width = FONT16x24_WIDTH; + _font_height = FONT16x24_HEIGHT; + _font_start = FONT16x24_START; + _font_end = FONT16x24_END; + _font_bytes = FONT16x24_BYTES; + + _pFont = (unsigned char*) font_16x24; + + break; + } + } +} + +void PCD8544MS::GLCD_writeChar(BYTE x0, BYTE y0, BYTE ch, eFonts font, ePixelMode pmode,eDisplayMode mode,BYTE fupdate,int screen) { + BYTE sendByte; + + chooseFont(font); + + if ((ch <= _font_start) || (ch > _font_end)) + ch=_font_start; + + ch -= _font_start; + + + /* for (BYTE i = 0; i < 3; i++) { + locate(x, y + i); + + for (BYTE j = 0; j < 16; j++) { + sendByte = *(pFont + ch*48 + i*16 + j); + writeData((mode == NORMAL)? sendByte : (sendByte^0xff)); + } + }*/ + + + for (int i = 0; i < _font_width; i++ ) { + for (int f=0; f<_font_bytes; f++) { + sendByte = *(_pFont + ch*_font_width*_font_bytes +f*_font_width+i); + sendByte = ((mode == DISPLAY_NORMAL)? sendByte:(sendByte ^ 0xff)); + + for (int j=0 ; j<_font_height; j++) { + if ((sendByte & 0x01) == 0x01) { + GLCD_drawpixel(x0,y0+j+f*8,PIXEL_ON,FALSE,screen); + } else { + GLCD_drawpixel(x0,y0+j+f*8,PIXEL_OFF,FALSE,screen); + } + sendByte=sendByte>>1; + } + } + x0++; + } + + + if (fupdate==TRUE) + GLCD_update(screen); +} + + +void PCD8544MS::GLCD_drawpixel(BYTE x0, BYTE y0, ePixelMode mode,BYTE fupdate,int screen) { + uint16_t index; + BYTE offset; + BYTE data; + + if ( x0 > LCD_X_RES-1 ) return; + if ( y0 > LCD_Y_RES-1 ) return; + + index = ((y0 / 8) * LCD_X_RES) + x0; + offset = y0 - ((y0 / 8) * 8); + + data = LcdCache[index]; + + if ( mode == PIXEL_OFF ) { + data &= (~(0x01 << offset)); + } else if ( mode == PIXEL_ON ) { + data |= (0x01 << offset); + } else if ( mode == PIXEL_XOR ) { + data ^= (0x01 << offset); + } + LcdCache[index] = data; + + if ( index < _LoMark ) { + _LoMark = index; + } + if ( index > _HiMark ) { + _HiMark = index; + } + if (fupdate==TRUE) + GLCD_update(screen); +} + +void PCD8544MS::GLCD_drawline(BYTE x0, BYTE y0, BYTE x1, BYTE y1, ePixelMode mode,BYTE fupdate,int screen) { + int dx, dy, stepx, stepy, fraction; + + dy = y1 - y0; + dx = x1 - x0; + if ( dy < 0 ) { + dy = -dy; + stepy = -1; + } else { + stepy = 1; + } + if ( dx < 0 ) { + dx = -dx; + stepx = -1; + } else { + stepx = 1; + } + dx <<= 1; + dy <<= 1; + + GLCD_drawpixel( x0, y0, mode , FALSE,screen); + if ( dx > dy ) { + fraction = dy - (dx >> 1); + while ( x0 != x1 ) { + if ( fraction >= 0 ) { + y0 += stepy; + fraction -= dx; + } + x0 += stepx; + fraction += dy; + GLCD_drawpixel( x0, y0, mode , FALSE,screen); + } + } else { + fraction = dx - (dy >> 1); + while ( y0 != y1 ) { + if ( fraction >= 0 ) { + x0 += stepx; + fraction -= dy; + } + y0 += stepy; + fraction += dx; + GLCD_drawpixel( x0, y0, mode , FALSE,screen); + } + } + if (fupdate==TRUE) + GLCD_update(screen); +} + +void PCD8544MS::GLCD_drawrectangle(BYTE x0, BYTE y0, BYTE x1, BYTE y1, eFillMode fill, ePixelMode mode,BYTE fupdate,int screen) { + if (fill==1) { + BYTE i, xmin, xmax, ymin, ymax; + if (x0 < x1) { // Find x min and max + xmin = x0; + xmax = x1; + } else { + xmin = x1; + xmax = x0; + } + if (y0 < y1) { // Find the y min and max + ymin = y0; + ymax = y1; + } else { + ymin = y1; + ymax = y0; + } + for (; xmin <= xmax; ++xmin) { + for (i=ymin; i<=ymax; ++i) { + GLCD_drawpixel(xmin, i, mode, FALSE,screen); + } + } + } else { + GLCD_drawline(x0, y0, x1, y0, mode, FALSE,screen); // Draw the 4 sides + GLCD_drawline(x0, y1, x1, y1, mode, FALSE,screen); + GLCD_drawline(x0, y0, x0, y1, mode, FALSE,screen); + GLCD_drawline(x1, y0, x1, y1, mode, FALSE,screen); + } + if (fupdate==TRUE) + GLCD_update(screen); +} + + +void PCD8544MS::GLCD_drawcircle(BYTE x0, BYTE y0, BYTE radius, eFillMode fill, ePixelMode mode, BYTE fupdate,int screen) { + int err, x, y; + + err = -radius; + x = radius; + y = 0; + + while (x >= y) { + if (fill==1) { + GLCD_drawline(x0 - x, y0 + y, x0 + x, y0 + y, mode,FALSE,screen); + GLCD_drawline(x0 - x, y0 - y, x0 + x, y0 - y, mode,FALSE,screen); + GLCD_drawline(x0 - y, y0 + x, x0 + y, y0 + x, mode,FALSE,screen); + GLCD_drawline(x0 - y, y0 - x, x0 + y, y0 - x, mode,FALSE,screen); + } else { + GLCD_drawpixel(x0 + x, y0 + y, mode,FALSE,screen); + GLCD_drawpixel(x0 - x, y0 + y, mode,FALSE,screen); + GLCD_drawpixel(x0 + x, y0 - y, mode,FALSE,screen); + GLCD_drawpixel(x0 - x, y0 - y, mode,FALSE,screen); + GLCD_drawpixel(x0 + y, y0 + x, mode,FALSE,screen); + GLCD_drawpixel(x0 - y, y0 + x, mode,FALSE,screen); + GLCD_drawpixel(x0 + y, y0 - x, mode,FALSE,screen); + GLCD_drawpixel(x0 - y, y0 - x, mode,FALSE,screen); + } + err += y; + y++; + err += y; + if (err >= 0) { + x--; + err -= x; + err -= x; + } + } + + if (fupdate==TRUE) + GLCD_update(screen); + +} + +void PCD8544MS::GLCD_drawprogressbar(BYTE x0, BYTE y0, BYTE w, BYTE h, BYTE percentage,BYTE fupdate,int screen) { + GLCD_drawrectangle(x0,y0,x0+w,y0+h,FILL_OFF,PIXEL_ON, FALSE,screen); + GLCD_drawrectangle(x0+2,y0+2,x0+w-2,y0+h-2,FILL_ON,PIXEL_OFF, FALSE,screen); + GLCD_drawrectangle(x0+2,y0+2,x0+2+(percentage*(w-4)/100),y0+h-2,FILL_ON,PIXEL_ON, FALSE,screen); + if (fupdate==TRUE) + GLCD_update(screen); +} + +void PCD8544MS::GLCD_drawchart(BYTE x0, BYTE y0, BYTE w, BYTE h, BYTE unitx, BYTE unity, + eRasterMode rMode, eChartMode cMode,eDrawMode dMode, int16_t * val, int size, int t,int screen) { + int maxy; + int _scale=1; + int prescale=1; + + signed char v1,v2; + char buffer[4]; + + if (size>w) + size=w; + + // search maximum value to calculate scale + if (dMode==DRAW_OVERWRITE) { + maxy=0; + for (int i=0; i<size; i++) { + if (val[i]>maxy) + maxy=val[i]; + + } + + if (maxy>h) { //scale can be 1,2,5 *10i + prescale= ((maxy-1)/((h/unity)*unity)); + _scale=1; + while (prescale>10) { + _scale=_scale*10; + prescale=prescale/10; + } + if (prescale>1) + _scale=_scale*5; + else if (prescale==1) + _scale =_scale*2; + + + } + Scale=_scale; + } + + if (dMode==DRAW_OVERWRITE) { + GLCD_drawrectangle(x0-11,y0-h,x0+w,y0+4+7,FILL_ON,PIXEL_OFF,FALSE,screen); + GLCD_drawline(x0,y0,x0,y0-h,PIXEL_ON,FALSE,screen); + GLCD_drawline(x0,y0,x0+w,y0,PIXEL_ON,FALSE,screen); + + //drawrectangle(x0,y0-h,x0+w,y0,FILL_OFF,PIXEL_ON,FALSE); + + for (int i=0; i<=h; i++) { + if ((i % unity) == 0) { + GLCD_drawpixel(x0-2,y0-i,PIXEL_ON,FALSE,screen); + // drawpixel(x0+w+2,y0-i,PIXEL_ON,FALSE); + + if (rMode==RASTER_ON) { + for (int r=0; r<=w; r++) { + if ((r % 2) ==0) + GLCD_drawpixel(x0+r,y0-i,PIXEL_ON,FALSE,screen); + } + } + // draw vertical axis labels + + itostr(buffer,i*Scale); + + // pc_PCD8544.traceOut(" %i %s |",i*Scale,buffer); + GLCD_writeString(x0-11,y0-i+1,buffer,VERYSMALLFONT,PIXEL_OFF,DISPLAY_NORMAL,SPACE_NONE,FALSE,screen); + + } + if ((i % 2) == 0) { + GLCD_drawpixel(x0-1,y0-i,PIXEL_ON,FALSE,screen); + // drawpixel(x0+w+1,y0-i,PIXEL_ON,FALSE); + } + } + + for (int i=0; i<=w; i++) { + if (((i+(t % unitx)) % unitx) == 0) { + GLCD_drawpixel(x0+i,y0+2,PIXEL_ON,FALSE,screen); + + if (rMode==RASTER_ON) { + for (int r=0; r<=h; r++) { + if ((r % 2) ==0) + GLCD_drawpixel(x0+i,y0-r,PIXEL_ON,FALSE,screen); + } + } + if (((t-w+i)/unitx)>=0) + snprintf(buffer,3,"%i",((t-w+i)/unitx)); + else + snprintf(buffer,3,"%i",24+((t-w+i)/unitx)); + + // pc_PCD8544.traceOut(" %i %s ",(t-w+i)/unitx,buffer); + GLCD_writeString(x0+i-3,y0+4,buffer,VERYSMALLFONT,PIXEL_OFF,DISPLAY_NORMAL,SPACE_NORMAL,FALSE,screen); + } + if ((i % 2) == 0) { + GLCD_drawpixel(x0+i,y0+1,PIXEL_ON,FALSE,screen); + } + } + // update(); + } + + for (int i=0; i<size; i++) { + // pc_PCD8544.traceOut(" %i ",val[i]); + v1 = val[i] / Scale; + if (v1>h) + v1=h; + + if (i!=(size-1)) { + v2 = val[i+1] / Scale; + if (v2>h) + v2=h; + } else + v2=v1; + + + switch (cMode) { + case C_POINT: { + GLCD_drawpixel(x0+i,y0-v1,PIXEL_ON,FALSE,screen); + break; + } + case C_LINE: { + GLCD_drawline(x0+i,y0-v1,x0+i+1,y0-v2,PIXEL_ON,FALSE,screen); + break; + } + case C_VLINE: { + GLCD_drawline(x0+i,y0-v1,x0+i,y0,PIXEL_ON,FALSE,screen); + break; + } + } + } + + GLCD_update(screen); +} +
diff -r 000000000000 -r 61dcd2c0299a PCD8544MS.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/PCD8544MS.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,288 @@ +/* mbed PCD8544MS - Graphic Library for driving multi monochrome displays based on PCD8544 + * used in Nokia 3310, 3315, 3330, 3350, 3410, 3210, 5110, 5120, 5130, 5160, 6110, 6150 + * + * Copyright (c) 2011, Wim De Roeve + * partial port of the code found on http://serdisplib.sourceforge.net/ser/pcd8544.html#links + * and by Petras Saduikis <petras@petras.co.uk> + * + * it uses a PCF8574 / PCF8575 for control line handling (/CS RESET and DC) + * and SPI for data handling + * up to 6 screens + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in + * all copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN + * THE SOFTWARE. + */ +#ifndef PCD8544MS_H +#define PCD8544MS_H + +// the Nokia 3310 has a resolution of 84 x 48 +// the Nokia 3410 has a resolution of 102 x 72 officialy 84x64 + +#include "mbed.h" + +#define LCD_X_RES 102 //84 +#define LCD_Y_RES 72 //48 +#define LCD_BANKS (LCD_Y_RES / 8) + +#define LCD_CACHE_SIZE ((LCD_X_RES * LCD_Y_RES) / 8) + +#define MAX_ADR_X (LCD_X_RES)-1 +#define MAX_ADR_Y LCD_BANKS-1 +//#define MAXSCREENS 1 + +typedef uint8_t BYTE; + +class PCD8544MS { + + /* PCD8544 from Philips Semiconductors is + 48 x 84 pixels monochrome matrix LCD controller/driver + + The PCD8544 has a 504 byte memory with NO read function. + Each bit is a pixel + You can only write 1 byte at a time in vertical or horizontal mode. + There is no read functionality with the controller. + Caching a copy of the LCD-memory is the only solution to set one pixel at a time. + + + * wiring SPI + * mosi // yellow + * miso NC + * sclk //green + + * PCF8575/PCF8574 to PCD8544 LCD + * ---------------------- + * P0 - CS1 //gray + * P1 - DC //blue + * P2 - RESET //white + * P3 - CS2 + * P4 - CS3 + * P5 - CS4 + * P6 - CS5 + * P7 - CS6 + * + */ + // yellow green //gray //blue //white + // PCD8544MS lcd(p11,NC,p13,p15,p16,p17); //mosi miso sclk cs dc reset + + +public: + + /** LCD panel format */ + typedef enum { + PIXEL_OFF = 0, + PIXEL_ON = 1, + PIXEL_XOR = 2 + }ePixelMode; + + typedef enum { + FILL_OFF = 0, + FILL_ON = 1 + }eFillMode; + + typedef enum { + RASTER_OFF = 0, + RASTER_ON = 1 + }eRasterMode; + + typedef enum { + DRAW_OVERWRITE = 0, + DRAW_MERGE = 1 + }eDrawMode; + + + typedef enum { + VERYSMALLFONT = 0, //3x5 + TINYFONT = 1, //5x7 + SMALLFONT = 2, //6x8 + NORMALFONT = 3, //8x8 + BIGFONT = 4, //8x12� + TIMENUMBERFONT= 5, //16x20 + BIGNUMBERFONT= 6 + }eFonts; + + typedef enum { + C_POINT = 0, //point + C_LINE = 1, //line + C_VLINE = 2, //Vertical Line + C_HLINE = 3, //Horizontal Line + }eChartMode; + + typedef enum { + SPACE_NONE = 0, + SPACE_NORMAL = 1 + }eSpaceMode; + + enum eDisplayMode {DISPLAY_NORMAL, DISPLAY_HIGHLIGHT}; + + enum LCDType { + LCD3310, + LCD3410, + LCD6100, /**< Nokia 6100, as found on sparkfun board (default) */ + LCD6610, /**< Nokia 6610, as found on olimex board */ + PCF8833 + }; + + + PCD8544MS(PinName mosi, PinName miso, PinName sclk, PinName sda, PinName scl,int i2cAddress,bool TextLCD, bool backlight); + + /** init() + * + * Initialise the device. + * @param PinName SPI mosi + * @param PinName SPI miso + * @param PinName SPI sclk + * @param PinName sda + * @param PinName sck + * @param PinName i2cAddress + * @param int maxscreens // number of screens used + */ + +#if 0 // Inhereted from Stream, for documentation only + /* Function: putc + * Write a character + * + * Variables: + * c - The character to write to the serial port + */ + int putc(int c); + + /* Function: printf + * Write a formated string + * + * Variables: + * format - A printf-style format string, followed by the + * variables to use in formating the string. + */ + int printf(const char* format, ...); +#endif + + + virtual void TLCD_locate(int column, int row); + + /* Function: cls + * Clear the screen, and locate to 0,0 + */ + virtual void TLCD_cls(); + + /* Function: backlight + * Sets the backlight on or off + * + * Variables: + * on (true or false) + */ + + + virtual void TLCD_backlight(bool on); + + + /** cls() + * clears the cached copy of the screen + * and the screen itself + */ + void GLCD_cls(int screen,bool fupdate=true); + + /** update() + * copies the cached memory to the screen + * use this to update the screen after + * - drawBitmap + */ + void GLCD_update(int screen); + + /** close() + * screen display OFF + */ + void GLCD_close(); + + /** locate(x,y) + * sets the cursor on position x,y + */ + void GLCD_locate (BYTE x0, BYTE y0); + + void chooseFont(eFonts font); + void GLCD_writeString (BYTE x0, BYTE y0, char* string, eFonts font,ePixelMode pmode,eDisplayMode dmode,eSpaceMode smode, BYTE fupdate,int screen ); + void GLCD_writeChar (BYTE x0, BYTE y0, BYTE ch, eFonts font,ePixelMode pmode,eDisplayMode mode, BYTE fupdate,int screen); + + /** drawBitmap(x,y,bitmap,xsize,ysize) + * draw a monochrome bitmap on position x,y + * with size xsize,ysize + */ + void GLCD_drawBitmap (BYTE x0, BYTE y0, const unsigned char* bitmap, BYTE bmpXSize, BYTE bmpYSize, BYTE fupdate,int screen ); + + void GLCD_drawpixel (BYTE x0, BYTE y0, ePixelMode pmode, BYTE fupdate,int screen ); + void GLCD_drawline (BYTE x0, BYTE y0, BYTE x1,BYTE y1, ePixelMode pmode, BYTE fupdate,int screen ); + void GLCD_drawcircle (BYTE x0, BYTE y0, BYTE radius, eFillMode fill,ePixelMode pmode, BYTE fupdate,int screen ); + void GLCD_drawrectangle (BYTE x0, BYTE y0, BYTE x1,BYTE y1, eFillMode fill, ePixelMode pmode, BYTE fupdate,int screen ); + void GLCD_drawprogressbar(BYTE x0, BYTE y0, BYTE w, BYTE h, BYTE percentage, BYTE fupdate,int screen ); + void GLCD_drawchart (BYTE x0, BYTE y0, BYTE w, BYTE h, BYTE unitx, BYTE unity, + eRasterMode rMode, eChartMode cMode, eDrawMode dMode,int16_t * val, int size, int t,int screen ); + +private: + + SPI _spi; + I2C _i2c; + int _i2cAddress; + // LCDType _type; + + // int _lcd_x_res,_lcd_y_res,_lcd_cache_size; + + + void TLCD_reset(); + void TLCD_writeData(int data); + void TLCD_writeCommand(int command); + void TLCD_writeByte(int value, bool rs); + void TLCD_writeNibble(int value, bool rs); + + void GLCD_reset(); + void GLCD_writeCmd(BYTE data, BYTE CF,int screen); + void GLCD_writeData(BYTE data, BYTE CF,int screen); + void GLCD_writeI2C(bool reset, bool dc, bool cs,int screen ); + + void writeI2CByte(int data); + int readI2C(); + + virtual int _putc(int c); + virtual int _getc(); + virtual void TLCD_newline(); + + int _row; + int _column; + int _columns; + int _rows; + + bool _backlight; + + //BYTE LcdCache[][_lcd_cache_size]; // __attribute__((section("AHBSRAM0"))); + BYTE LcdCache[LCD_CACHE_SIZE]; // __attribute__((section("AHBSRAM0"))); + + int LcdCacheIdx; + int _LoMark; + int _HiMark; + int Scale; + + BYTE _font_width; + BYTE _font_height; + BYTE _font_start; + BYTE _font_end; + BYTE _font_bytes; + unsigned char* _pFont; + + + +}; + +#endif \ No newline at end of file
diff -r 000000000000 -r 61dcd2c0299a fonts/font_16x20.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_16x20.cpp Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,29 @@ +#include "font_16x20.h" + + +//0x20 - 0x3A +const unsigned char font_16x20[] = +{ + 0xf4,0xbf,0xf8,0x7f,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0x00,0x00,0x04,0x80, + 0x0c,0xc0,0x04,0x80,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, // 0x30 + 0x04,0x00,0x00,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, + 0x0c,0x00,0x04,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x31 + 0xf4,0x3f,0xf8,0x7f,0x1c,0x00,0xec,0x1f,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0xf8,0x7f,0xf4,0x3f, + 0x00,0xc0,0xf0,0xbf,0x00,0xe0,0x00,0xe0,0x00,0xe0,0x00,0xe0,0xe0,0xdf,0x00,0xe0,0xf8,0x7f,0xf0,0xbf, // 0x32 + 0xf4,0x3f,0xf8,0x7f,0x1c,0x00,0xec,0x1f,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0xf8,0x7f,0xf4,0x3f, + 0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0xec,0x1f,0x1c,0x00,0xf8,0x7f,0xf4,0x3f, // 0x33 + 0x04,0x80,0x00,0x00,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, + 0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x34 + 0xf0,0xbf,0xf8,0x7f,0x00,0xe0,0xe0,0xdf,0x00,0xe0,0x00,0xe0,0x00,0xc0,0x00,0xe0,0xf8,0x7f,0xf0,0xbf, + 0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0xec,0x1f,0x1c,0x00,0xf8,0x7f,0xf4,0x3f, // 0x35 + 0xf0,0xbf,0xf8,0x7f,0x00,0xe0,0xe0,0xdf,0x00,0xe0,0x00,0xe0,0x00,0xc0,0x00,0xe0,0xf8,0x7f,0xf0,0xbf, + 0x0c,0xc0,0xf4,0xbf,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, // 0x36 + 0xf4,0x3f,0xf8,0x7f,0x1c,0x00,0xec,0x1f,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, + 0x0c,0x00,0x04,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x37 + 0xf4,0xbf,0xf8,0x7f,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, + 0x0c,0xc0,0xf4,0xbf,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, // 0x38 + 0xf4,0xbf,0xf8,0x7f,0x1c,0xe0,0xec,0xdf,0x1c,0xe0,0x1c,0xe0,0x0c,0xc0,0x1c,0xe0,0xf8,0x7f,0xf4,0xbf, + 0x0c,0x00,0xf4,0x3f,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x1c,0x00,0x0c,0x00,0x1c,0x00,0x00,0x00,0x04,0x00, // 0x39 + 0x00,0x00,0x00,0x00,0x00,0x02,0x00,0x00,0x80,0x0f,0x00,0x07,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00, + 0x00,0x02,0x00,0x00,0x80,0x0f,0x00,0x07,0x00,0x02,0x00,0x07,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // 0x3a +};
diff -r 000000000000 -r 61dcd2c0299a fonts/font_16x20.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_16x20.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,17 @@ +#ifndef _FONT_16x20_H_ +#define _FONT_16x20_H_ + + +//----- DEFINES ----- +#define FONT16x20_START 0x30 +#define FONT16x20_END 0x3A +#define FONT16x20_WIDTH 16 +#define FONT16x20_HEIGHT 20 +#define FONT16x20_BYTES 2 + + +//----- GLOBALS ----- +extern const unsigned char font_16x20[]; + + +#endif
diff -r 000000000000 -r 61dcd2c0299a fonts/font_16x24.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_16x24.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,58 @@ +#ifndef _FONT_16x24_H_ +#define _FONT_16x24_H_ + +//----- DEFINES ----- +#define FONT16x24_START 0x20 +#define FONT16x24_END 0x44 +#define FONT16x24_WIDTH 11 +#define FONT16x24_HEIGHT 24 +#define FONT16x24_BYTES 3 + +//used here for displaying numbers 0 - 9 and '+', '-', '.' + +unsigned char font_16x24[36][3][11] = +{ + + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x20 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x21 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x22 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x23 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x24 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x25 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x26 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x27 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x28 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x29 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x2A + + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,64,64,64,254,254,64,64 , 0,0,0,0,0,0,0,15,15,0,0 ,//'+'// 0x2B + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x2C + + 0,0,0,0,0,0,0,0,0,0,0 , 0,64,64,64,64,64,64,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , //'-'// 0x2D + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,60,60,60,0,0,0,0,0 , //'.' // 0x2E + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x2F + + 0,128,192,224,224,96,224,224,192,128,0 , 112,255,255,1,0,0,0,0,255,255,254 , 0,15,31,60,56,48,56,56,31,15,3 , //'0' 0x30 + 0,0,0,0,128,224,224,0,0,0,0 , 0,0,3,3,3,255,255,0,0,0,0 , 0,0,56,56,56,63,63,56,56,56,0 , //'1' 0x31 + 0,192,192,224,96,96,224,224,192,128,0 , 0,1,0,0,128,192,224,249,63,31,0 , 0,60,62,63,63,59,57,56,56,56,56 ,//'2' 0x32 + 0,192,224,224,96,96,224,224,192,192,0 , 0,1,0,0,48,48,56,125,239,207,0 , 0,28,56,56,48,48,56,60,31,15,1 ,//'3'0x33 + 0,0,0,0,0,128,192,224,224,0,0 , 224,240,248,222,207,199,193,255,255,192,192 , 0,0,0,0,0,0,0,63,63,0,0 ,//'4'0x34 + 0,224,224,224,224,224,224,224,224,224,224 , 0,63,63,63,56,56,48,112,240,224,0 , 0,28,56,56,48,48,56,60,31,15,1 , //'5'0x35 + 0,0,128,192,192,224,96,96,224,224,0 , 224,254,255,55,57,24,24,56,240,240,192 , 0,15,31,28,56,48,48,56,31,15,7 ,//'6'0x36 + 0,224,224,224,224,224,224,224,224,224,224 , 0,0,0,0,128,224,248,126,31,7,1 , 0,0,56,62,31,7,1,0,0,0,0 ,//'7'0x37 + 0,128,192,224,224,96,96,224,192,192,0 , 0,207,255,127,56,48,112,112,255,239,199 , 3,15,31,60,56,48,48,56,31,31,15 , //'8'0x38 + 0,128,192,224,224,96,224,224,192,128,0 , 12,63,127,241,224,192,192,225,255,255,254 , 0,0,56,48,48,56,56,30,15,7,0, //'9'0x39 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x3A + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x3B + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x3C + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x3D + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x3E + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x3F + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x40 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x41 + 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 , 0,0,0,0,0,0,0,0,0,0,0 ,// 0x42 + 0,128,192,224,224,96,224,224,192,128,0 , 112,112,112,1,0,0,0,0,112,112,112 , 0,0,0,0,0,0,0,0,0,0,0 //'C' 0x43 +}; + +#endif +
diff -r 000000000000 -r 61dcd2c0299a fonts/font_3x5.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_3x5.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,103 @@ +/* ******************************************* + * Only numbers in a 3x5 dot format + ********************************************* */ +#define FONT3x5_START 0x20 +#define FONT3x5_END 0x78 +#define FONT3x5_WIDTH 3 +#define FONT3x5_HEIGHT 5 +#define FONT3x5_BYTES 1 + +static const char font_3x5[] = { + + 0x00, 0x00, 0x00, // - 0x20 + 0x00, 0x00, 0x00, // - 0x21 + 0x00, 0x00, 0x00, // - 0x22 + 0x00, 0x00, 0x00, // - 0x23 + 0x00, 0x00, 0x00, // - 0x24 + 0x00, 0x00, 0x00, // - 0x25 + 0x00, 0x00, 0x00, // - 0x26 + 0x00, 0x00, 0x00, // - 0x27 + 0x00, 0x00, 0x00, // - 0x28 + 0x00, 0x00, 0x00, // - 0x29 + 0x00, 0x00, 0x00, // - 0x2A + 0x00, 0x00, 0x00, // - 0x2B + 0x00, 0x00, 0x00, // - 0x2C + 0x04, 0x04, 0x04, // - 0x2D + 0x00, 0x04, 0x00, // . 0x2E + 0x01, 0x0E, 0x10, // / 0x2F + 0x1F, 0x11, 0x1F, // 0 0x30 + 0x00, 0x1F, 0x00, // 1 0x31 + 0x1D, 0x15, 0x17, // 2 0x32 + 0x15, 0x15, 0x1F, // 3 0x33 + 0x07, 0x04, 0x1F, // 4 0x34 + 0x17, 0x15, 0x1D, // 5 0x35 + 0x1F, 0x14, 0x1C, // 6 0x36 + 0x01, 0x01, 0x1F, // 7 0x37 + 0x1F, 0x15, 0x1F, // 8 0x38 + 0x07, 0x05, 0x1F, // 9 0x39 + 0x18, 0x17, 0x1C, // 0x3A + 0x18, 0x17, 0x1C, // 0x3B + 0x18, 0x17, 0x1C, // 0x3C + 0x18, 0x17, 0x1C, // 0x3D + 0x18, 0x17, 0x1C, // 0x3E + 0x18, 0x17, 0x1C, // 0x3F + 0x18, 0x17, 0x1C, // 0x40 + 0x18, 0x17, 0x1C, // 0x41 + 0x18, 0x17, 0x1C, // 0x42 + 0x18, 0x17, 0x1C, // 0x43 + 0x18, 0x17, 0x1C, // 0x44 + 0x18, 0x17, 0x1C, // 0x45 + 0x18, 0x17, 0x1C, // 0x46 + 0x18, 0x17, 0x1C, // 0x47 + 0x18, 0x17, 0x1C, // 0x48 + 0x18, 0x17, 0x1C, // 0x49 + 0x18, 0x17, 0x1C, // 0x4A + 0x18, 0x17, 0x1C, // 0x4B + 0x18, 0x17, 0x1C, // 0x4C + 0x18, 0x17, 0x1C, // 0x4D + 0x18, 0x17, 0x1C, // 0x4E + 0x18, 0x17, 0x1C, // 0x4F + 0x18, 0x17, 0x1C, // 0x50 + 0x18, 0x17, 0x1C, // 0x51 + 0x18, 0x17, 0x1C, // 0x52 + 0x18, 0x17, 0x1C, // 0x53 + 0x18, 0x17, 0x1C, // 0x54 + 0x18, 0x17, 0x1C, // 0x55 + 0x18, 0x17, 0x1C, // 0x56 + 0x18, 0x17, 0x1C, // 0x57 + 0x18, 0x17, 0x1C, // 0x58 + 0x18, 0x17, 0x1C, // 0x59 + 0x18, 0x17, 0x1C, // 0x5A + 0x18, 0x17, 0x1C, // 0x5B + 0x18, 0x17, 0x1C, // 0x5C + 0x18, 0x17, 0x1C, // 0x5D + 0x18, 0x17, 0x1C, // 0x5E + 0x18, 0x17, 0x1C, // 0x5F + 0x18, 0x17, 0x1C, // 0x60 + 0x18, 0x17, 0x1C, // 0x61 + 0x18, 0x17, 0x1C, // 0x62 + 0x18, 0x17, 0x1C, // 0x63 + 0x18, 0x17, 0x1C, // 0x64 + 0x18, 0x17, 0x1C, // 0x65 + 0x18, 0x17, 0x1C, // 0x66 + 0x18, 0x17, 0x1C, // 0x67 + 0x18, 0x17, 0x1C, // 0x68 + 0x18, 0x17, 0x1C, // 0x69 + 0x18, 0x17, 0x1C, // 0x6A + 0x1F, 0x04, 0x0B, // k 0x6B + 0x18, 0x17, 0x1C, // 0x6C + 0x18, 0x17, 0x1C, // 0x6D + 0x18, 0x17, 0x1C, // 0x6E + 0x18, 0x17, 0x1C, // 0x6F + 0x18, 0x17, 0x1C, // 0x70 + 0x18, 0x17, 0x1C, // 0x71 + 0x18, 0x17, 0x1C, // 0x72 + 0x18, 0x17, 0x1C, // 0x73 + 0x18, 0x17, 0x1C, // 0x74 + 0x18, 0x17, 0x1C, // 0x75 + 0x18, 0x17, 0x1C, // 0x76 + 0x18, 0x17, 0x1C, // 0x77 + 0x0A, 0x04, 0x0A // x 0x78 + + +}; \ No newline at end of file
diff -r 000000000000 -r 61dcd2c0299a fonts/font_5x7.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_5x7.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,100 @@ +#define FONT5x7_START 0x20 +#define FONT5x7_END 0x7A +#define FONT5x7_WIDTH 5 +#define FONT5x7_HEIGHT 7 +#define FONT5x7_BYTES 1 + +static const char font_5x7[][5] = +{ + { 0x00, 0x00, 0x00, 0x00, 0x00 }, // sp + { 0x00, 0x00, 0x2f, 0x00, 0x00 }, // ! + { 0x00, 0x07, 0x00, 0x07, 0x00 }, // " + { 0x14, 0x7f, 0x14, 0x7f, 0x14 }, // # + { 0x24, 0x2a, 0x7f, 0x2a, 0x12 }, // $ + { 0xc4, 0xc8, 0x10, 0x26, 0x46 }, // % + { 0x36, 0x49, 0x55, 0x22, 0x50 }, // & + { 0x00, 0x05, 0x03, 0x00, 0x00 }, // ' + { 0x00, 0x1c, 0x22, 0x41, 0x00 }, // ( + { 0x00, 0x41, 0x22, 0x1c, 0x00 }, // ) + { 0x14, 0x08, 0x3E, 0x08, 0x14 }, // * + { 0x08, 0x08, 0x3E, 0x08, 0x08 }, // + + { 0x00, 0x00, 0x50, 0x30, 0x00 }, // , + { 0x10, 0x10, 0x10, 0x10, 0x10 }, // - + { 0x00, 0x60, 0x60, 0x00, 0x00 }, // . + { 0x20, 0x10, 0x08, 0x04, 0x02 }, // / + { 0x3E, 0x51, 0x49, 0x45, 0x3E }, // 0 + { 0x00, 0x42, 0x7F, 0x40, 0x00 }, // 1 + { 0x42, 0x61, 0x51, 0x49, 0x46 }, // 2 + { 0x21, 0x41, 0x45, 0x4B, 0x31 }, // 3 + { 0x18, 0x14, 0x12, 0x7F, 0x10 }, // 4 + { 0x27, 0x45, 0x45, 0x45, 0x39 }, // 5 + { 0x3C, 0x4A, 0x49, 0x49, 0x30 }, // 6 + { 0x01, 0x71, 0x09, 0x05, 0x03 }, // 7 + { 0x36, 0x49, 0x49, 0x49, 0x36 }, // 8 + { 0x06, 0x49, 0x49, 0x29, 0x1E }, // 9 + { 0x00, 0x36, 0x36, 0x00, 0x00 }, // : + { 0x00, 0x56, 0x36, 0x00, 0x00 }, // ; + { 0x08, 0x14, 0x22, 0x41, 0x00 }, // < + { 0x14, 0x14, 0x14, 0x14, 0x14 }, // = + { 0x00, 0x41, 0x22, 0x14, 0x08 }, // > + { 0x02, 0x01, 0x51, 0x09, 0x06 }, // ? + { 0x32, 0x49, 0x59, 0x51, 0x3E }, // @ + { 0x7E, 0x11, 0x11, 0x11, 0x7E }, // A + { 0x7F, 0x49, 0x49, 0x49, 0x36 }, // B + { 0x3E, 0x41, 0x41, 0x41, 0x22 }, // C + { 0x7F, 0x41, 0x41, 0x22, 0x1C }, // D + { 0x7F, 0x49, 0x49, 0x49, 0x41 }, // E + { 0x7F, 0x09, 0x09, 0x09, 0x01 }, // F + { 0x3E, 0x41, 0x49, 0x49, 0x7A }, // G + { 0x7F, 0x08, 0x08, 0x08, 0x7F }, // H + { 0x00, 0x41, 0x7F, 0x41, 0x00 }, // I + { 0x20, 0x40, 0x41, 0x3F, 0x01 }, // J + { 0x7F, 0x08, 0x14, 0x22, 0x41 }, // K + { 0x7F, 0x40, 0x40, 0x40, 0x40 }, // L + { 0x7F, 0x02, 0x0C, 0x02, 0x7F }, // M + { 0x7F, 0x04, 0x08, 0x10, 0x7F }, // N + { 0x3E, 0x41, 0x41, 0x41, 0x3E }, // O + { 0x7F, 0x09, 0x09, 0x09, 0x06 }, // P + { 0x3E, 0x41, 0x51, 0x21, 0x5E }, // Q + { 0x7F, 0x09, 0x19, 0x29, 0x46 }, // R + { 0x46, 0x49, 0x49, 0x49, 0x31 }, // S + { 0x01, 0x01, 0x7F, 0x01, 0x01 }, // T + { 0x3F, 0x40, 0x40, 0x40, 0x3F }, // U + { 0x1F, 0x20, 0x40, 0x20, 0x1F }, // V + { 0x3F, 0x40, 0x38, 0x40, 0x3F }, // W + { 0x63, 0x14, 0x08, 0x14, 0x63 }, // X + { 0x07, 0x08, 0x70, 0x08, 0x07 }, // Y + { 0x61, 0x51, 0x49, 0x45, 0x43 }, // Z + { 0x00, 0x7F, 0x41, 0x41, 0x00 }, // [ + { 0x55, 0x2A, 0x55, 0x2A, 0x55 }, // 55 + { 0x00, 0x41, 0x41, 0x7F, 0x00 }, // ] + { 0x04, 0x02, 0x01, 0x02, 0x04 }, // ^ + { 0x40, 0x40, 0x40, 0x40, 0x40 }, // _ + { 0x00, 0x01, 0x02, 0x04, 0x00 }, // ' + { 0x20, 0x54, 0x54, 0x54, 0x78 }, // a + { 0x7F, 0x48, 0x44, 0x44, 0x38 }, // b + { 0x38, 0x44, 0x44, 0x44, 0x20 }, // c + { 0x38, 0x44, 0x44, 0x48, 0x7F }, // d + { 0x38, 0x54, 0x54, 0x54, 0x18 }, // e + { 0x08, 0x7E, 0x09, 0x01, 0x02 }, // f + { 0x0C, 0x52, 0x52, 0x52, 0x3E }, // g + { 0x7F, 0x08, 0x04, 0x04, 0x78 }, // h + { 0x00, 0x44, 0x7D, 0x40, 0x00 }, // i + { 0x20, 0x40, 0x44, 0x3D, 0x00 }, // j + { 0x7F, 0x10, 0x28, 0x44, 0x00 }, // k + { 0x00, 0x41, 0x7F, 0x40, 0x00 }, // l + { 0x7C, 0x04, 0x18, 0x04, 0x78 }, // m + { 0x7C, 0x08, 0x04, 0x04, 0x78 }, // n + { 0x38, 0x44, 0x44, 0x44, 0x38 }, // o + { 0x7C, 0x14, 0x14, 0x14, 0x08 }, // p + { 0x08, 0x14, 0x14, 0x18, 0x7C }, // q + { 0x7C, 0x08, 0x04, 0x04, 0x08 }, // r + { 0x48, 0x54, 0x54, 0x54, 0x20 }, // s + { 0x04, 0x3F, 0x44, 0x40, 0x20 }, // t + { 0x3C, 0x40, 0x40, 0x20, 0x7C }, // u + { 0x1C, 0x20, 0x40, 0x20, 0x1C }, // v + { 0x3C, 0x40, 0x30, 0x40, 0x3C }, // w + { 0x44, 0x28, 0x10, 0x28, 0x44 }, // x + { 0x0C, 0x50, 0x50, 0x50, 0x3C }, // y + { 0x44, 0x64, 0x54, 0x4C, 0x44 } // z +}; \ No newline at end of file
diff -r 000000000000 -r 61dcd2c0299a fonts/font_6x8.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_6x8.cpp Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,99 @@ +#include "font_6x8.h" +const unsigned char font_6x8[576] = { +0x00,0x00,0x00,0x00,0x00,0x00, // Symbol 20 +0x00,0x00,0x00,0x5F,0x00,0x00, // Symbol 21 +0x00,0x00,0x03,0x00,0x03,0x00, // Symbol 22 +0x22,0x7F,0x22,0x22,0x7F,0x22, // Symbol 23 +0x00,0x24,0x2A,0x6B,0x2A,0x12, // Symbol 24 +0x00,0x23,0x13,0x08,0x64,0x62, // Symbol 25 +0x00,0x3A,0x45,0x45,0x3A,0x28, // Symbol 26 +0x00,0x00,0x00,0x02,0x01,0x00, // Symbol 27 +0x00,0x00,0x3E,0x41,0x00,0x00, // Symbol 28 +0x00,0x00,0x41,0x3E,0x00,0x00, // Symbol 29 +0x00,0x2A,0x1C,0x1C,0x2A,0x00, // Symbol 2A +0x00,0x08,0x08,0x3E,0x08,0x08, // Symbol 2B +0x00,0x00,0x80,0x40,0x00,0x00, // Symbol 2C +0x00,0x08,0x08,0x08,0x08,0x00, // Symbol 2D +0x00,0x00,0x00,0x40,0x00,0x00, // Symbol 2E +0x00,0x20,0x10,0x08,0x04,0x02, // Symbol 2F +0x00,0x3E,0x51,0x49,0x45,0x3E, // Symbol 30 +0x00,0x00,0x42,0x7F,0x40,0x00, // Symbol 31 +0x00,0x62,0x51,0x51,0x51,0x4E, // Symbol 32 +0x00,0x21,0x41,0x45,0x45,0x3B, // Symbol 33 +0x00,0x18,0x16,0x11,0x7F,0x10, // Symbol 34 +0x00,0x27,0x45,0x45,0x45,0x39, // Symbol 35 +0x00,0x3E,0x49,0x49,0x49,0x32, // Symbol 36 +0x00,0x01,0x61,0x11,0x09,0x07, // Symbol 37 +0x00,0x36,0x49,0x49,0x49,0x36, // Symbol 38 +0x00,0x26,0x49,0x49,0x49,0x3E, // Symbol 39 +0x00,0x00,0x00,0x12,0x00,0x00, // Symbol 3A +0x00,0x00,0x20,0x12,0x00,0x00, // Symbol 3B +0x00,0x08,0x14,0x22,0x41,0x00, // Symbol 3C +0x00,0x14,0x14,0x14,0x14,0x14, // Symbol 3D +0x00,0x41,0x22,0x14,0x08,0x00, // Symbol 3E +0x00,0x06,0x01,0x51,0x09,0x06, // Symbol 3F +0x00,0x3E,0x41,0x4D,0x4D,0x2E, // Symbol 40 +0x00,0x78,0x16,0x11,0x16,0x78, // Symbol 41 +0x00,0x7F,0x49,0x49,0x49,0x36, // Symbol 42 +0x00,0x3E,0x41,0x41,0x41,0x22, // Symbol 43 +0x00,0x7F,0x41,0x41,0x41,0x3E, // Symbol 44 +0x00,0x7F,0x49,0x49,0x49,0x41, // Symbol 45 +0x00,0x7F,0x09,0x09,0x09,0x01, // Symbol 46 +0x00,0x3E,0x41,0x41,0x51,0x32, // Symbol 47 +0x00,0x7F,0x08,0x08,0x08,0x7F, // Symbol 48 +0x00,0x00,0x41,0x7F,0x41,0x00, // Symbol 49 +0x00,0x30,0x40,0x41,0x41,0x3F, // Symbol 4A +0x00,0x7F,0x08,0x08,0x14,0x63, // Symbol 4B +0x00,0x7F,0x40,0x40,0x40,0x60, // Symbol 4C +0x00,0x7F,0x04,0x18,0x04,0x7F, // Symbol 4D +0x00,0x7F,0x04,0x08,0x10,0x7F, // Symbol 4E +0x00,0x3E,0x41,0x41,0x41,0x3E, // Symbol 4F +0x00,0x7F,0x09,0x09,0x09,0x06, // Symbol 50 +0x00,0x3E,0x41,0x61,0x21,0x5E, // Symbol 51 +0x00,0x7F,0x09,0x09,0x19,0x66, // Symbol 52 +0x00,0x26,0x49,0x49,0x49,0x32, // Symbol 53 +0x00,0x01,0x01,0x7F,0x01,0x01, // Symbol 54 +0x00,0x3F,0x40,0x40,0x40,0x3F, // Symbol 55 +0x00,0x07,0x18,0x60,0x18,0x07, // Symbol 56 +0x00,0x1F,0x60,0x18,0x60,0x1F, // Symbol 57 +0x00,0x63,0x14,0x08,0x14,0x63, // Symbol 58 +0x00,0x03,0x04,0x78,0x04,0x03, // Symbol 59 +0x00,0x61,0x51,0x49,0x45,0x43, // Symbol 5A +0x00,0x00,0x7F,0x41,0x00,0x00, // Symbol 5B +0x00,0x02,0x04,0x08,0x10,0x20, // Symbol 5C +0x00,0x00,0x41,0x7F,0x00,0x00, // Symbol 5D +0x00,0x00,0x00,0x00,0x00,0x00, // Symbol 5E +0x40,0x40,0x40,0x40,0x40,0x40, // Symbol 5F +0x00,0x00,0x00,0x01,0x02,0x00, // Symbol 60 +0x00,0x20,0x54,0x54,0x54,0x78, // Symbol 61 +0x00,0x7E,0x48,0x48,0x48,0x30, // Symbol 62 +0x00,0x38,0x44,0x44,0x44,0x28, // Symbol 63 +0x00,0x30,0x48,0x48,0x48,0x7E, // Symbol 64 +0x00,0x38,0x54,0x54,0x54,0x18, // Symbol 65 +0x00,0x10,0x7C,0x12,0x02,0x04, // Symbol 66 +0x00,0x0C,0x52,0x52,0x3C,0x02, // Symbol 67 +0x00,0x7E,0x08,0x08,0x08,0x70, // Symbol 68 +0x00,0x00,0x00,0x74,0x00,0x00, // Symbol 69 +0x00,0x40,0x80,0x80,0x74,0x00, // Symbol 6A +0x00,0x7E,0x10,0x10,0x10,0x6C, // Symbol 6B +0x00,0x00,0x02,0x7E,0x00,0x00, // Symbol 6C +0x00,0x7C,0x04,0x78,0x04,0x78, // Symbol 6D +0x00,0x7C,0x04,0x04,0x04,0x78, // Symbol 6E +0x00,0x38,0x44,0x44,0x44,0x38, // Symbol 6F +0x00,0xFC,0x24,0x24,0x24,0x18, // Symbol 70 +0x00,0x18,0x24,0x24,0x24,0xFC, // Symbol 71 +0x00,0x7C,0x08,0x04,0x04,0x08, // Symbol 72 +0x00,0x48,0x54,0x54,0x54,0x20, // Symbol 73 +0x00,0x08,0x3E,0x48,0x40,0x00, // Symbol 74 +0x00,0x3C,0x40,0x40,0x40,0x3C, // Symbol 75 +0x00,0x1C,0x20,0x40,0x20,0x1C, // Symbol 76 +0x00,0x3C,0x40,0x30,0x40,0x3C, // Symbol 77 +0x00,0x44,0x28,0x10,0x28,0x44, // Symbol 78 +0x00,0x1C,0x20,0xA0,0xA0,0x7C, // Symbol 79 +0x00,0x44,0x64,0x54,0x4C,0x44, // Symbol 7A +0x00,0x08,0x36,0x41,0x00,0x00, // Symbol 7B +0x00,0x00,0x00,0x7F,0x00,0x00, // Symbol 7C +0x00,0x00,0x41,0x36,0x08,0x00, // Symbol 7D +0x02,0x01,0x01,0x02,0x02,0x01, // Symbol 7E +0x00,0x7F,0x7F,0x7F,0x7F,0x7F // Symbol 7F +};
diff -r 000000000000 -r 61dcd2c0299a fonts/font_6x8.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_6x8.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,17 @@ +#ifndef _FONT_6X8_H_ +#define _FONT_6X8_H_ + + +//----- DEFINES ----- +#define FONT6x8_START 0x20 +#define FONT6x8_END 0x7A +#define FONT6x8_WIDTH 6 +#define FONT6x8_HEIGHT 8 +#define FONT6x8_BYTES 1 + + +//----- GLOBALS ----- +extern const unsigned char font_6x8[]; + + +#endif
diff -r 000000000000 -r 61dcd2c0299a fonts/font_8x12.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_8x12.cpp Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,36 @@ +#include "font_8x12.h" + + +//0x20 - 0xFF +const unsigned char font_8x12[] = +{ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x20 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x21 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x22 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x23 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x24 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x25 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x26 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x27 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x28 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x29 */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x2A */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x2B */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x2C */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x2D */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* . */ +0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, /* 0x2F */ + +0x00,0xFC,0xFE,0x03,0x03,0x03,0xFE,0xFC, 0x00,0x03,0x07,0x0C,0x0C,0x0C,0x07,0x03, /* 0 */ +0x00,0x04,0x06,0xFF,0xFF,0x00,0x00,0x00, 0x00,0x00,0x0C,0x0F,0x0F,0x0C,0x00,0x00, /* 1 */ +0x00,0x0E,0x03,0x83,0xC3,0x63,0x3E,0x1C, 0x00,0x07,0x0F,0x0D,0x0C,0x0C,0x0E,0x0E, /* 2 */ +0x00,0x06,0x03,0x63,0x63,0x63,0xFE,0x9C, 0x00,0x06,0x0C,0x0C,0x0C,0x0C,0x07,0x03, /* 3 */ +0x00,0xE0,0xF0,0x98,0x8C,0xFE,0xFF,0x80, 0x00,0x01,0x01,0x01,0x01,0x0F,0x0F,0x01, /* 4 */ +0x00,0x3F,0x7F,0x63,0x63,0x63,0x63,0xC3, 0x00,0x0C,0x0C,0x0C,0x0C,0x0C,0x07,0x03, /* 5 */ +0x00,0xFE,0xFF,0x63,0x63,0x63,0x63,0xC2, 0x00,0x07,0x0F,0x0C,0x0C,0x0C,0x07,0x03, /* 6 */ +0x00,0x03,0x03,0x03,0xE3,0xFB,0x1F,0x07, 0x00,0x00,0x00,0x0F,0x0F,0x01,0x00,0x00, /* 7 */ +0x00,0x9C,0xFE,0x63,0x63,0x63,0xFE,0x9C, 0x00,0x03,0x07,0x0C,0x0C,0x0C,0x07,0x03, /* 8 */ +0x00,0x3C,0x7E,0xE7,0xC3,0x67,0xFE,0xFC, 0x00,0x06,0x0E,0x0C,0x0C,0x0E,0x07,0x03 /* 9 */ + + +};
diff -r 000000000000 -r 61dcd2c0299a fonts/font_8x12.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_8x12.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,17 @@ +#ifndef _FONT_8X12_H_ +#define _FONT_8X12_H_ + + +//----- DEFINES ----- +#define FONT8x12_START 0x20 +#define FONT8x12_END 0x39 +#define FONT8x12_WIDTH 8 +#define FONT8x12_HEIGHT 12 +#define FONT8x12_BYTES 2 + + +//----- GLOBALS ----- +extern const unsigned char font_8x12[]; + + +#endif //_FONT_8X12_H_
diff -r 000000000000 -r 61dcd2c0299a fonts/font_8x8.cpp --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_8x8.cpp Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,231 @@ +#include "font_8x8.h" + + +//0x20 - 0xFF +const unsigned char font_8x8[] = +{ + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x20 + 0x30,0x78,0x78,0x30,0x00,0x30,0x00,0x30, // 0x21 + 0x00,0x6c,0x6c,0x6c,0x00,0x00,0x00,0x00, // 0x22 + 0x6c,0xfe,0x6c,0x6c,0x00,0x6c,0x6c,0xfe, // 0x23 + 0x78,0xc0,0x7c,0x30,0x00,0x30,0xf8,0x0c, // 0x24 + 0x18,0xcc,0xc6,0x00,0x00,0xc6,0x66,0x30, // 0x25 + 0x76,0x38,0x6c,0x38,0x00,0x76,0xcc,0xdc, // 0x26 + 0x00,0xc0,0x60,0x60,0x00,0x00,0x00,0x00, // 0x27 + 0x60,0x60,0x30,0x18,0x00,0x18,0x30,0x60, // 0x28 + 0x18,0x18,0x30,0x60,0x00,0x60,0x30,0x18, // 0x29 + 0xff,0x3c,0x66,0x00,0x00,0x00,0x66,0x3c, // 0x2a + 0xfc,0x30,0x30,0x00,0x00,0x00,0x30,0x30, // 0x2b + 0x00,0x00,0x00,0x00,0x60,0x30,0x70,0x00, // 0x2c + 0xfc,0x00,0x00,0x00,0x00,0x00,0x00,0x00, // 0x2d + 0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00, // 0x2e + 0x30,0x18,0x0c,0x06,0x00,0x80,0xc0,0x60, // 0x2f + 0xfc,0xdc,0xcc,0x78,0x00,0x78,0xcc,0xec, // 0x30 + 0x30,0x30,0xf0,0x30,0x00,0xfc,0x30,0x30, // 0x31 + 0x38,0x0c,0xcc,0x78,0x00,0xfc,0xcc,0x60, // 0x32 + 0x38,0x0c,0xcc,0x78,0x00,0x78,0xcc,0x0c, // 0x33 + 0xcc,0x6c,0x3c,0x1c,0x00,0x0c,0x0c,0xfe, // 0x34 + 0x0c,0xf8,0xc0,0xfc,0x00,0x78,0xcc,0x0c, // 0x35 + 0xf8,0xc0,0x60,0x38,0x00,0x78,0xcc,0xcc, // 0x36 + 0x18,0x0c,0xcc,0xfc,0x00,0x60,0x60,0x30, // 0x37 + 0x78,0xcc,0xcc,0x78,0x00,0x78,0xcc,0xcc, // 0x38 + 0x7c,0xcc,0xcc,0x78,0x00,0x70,0x18,0x0c, // 0x39 + 0x30,0x30,0x00,0x00,0x00,0x30,0x30,0x00, // 0x3a + 0x30,0x30,0x00,0x00,0x60,0x30,0x70,0x00, // 0x3b + 0xc0,0x60,0x30,0x18,0x00,0x18,0x30,0x60, // 0x3c + 0x00,0xfc,0x00,0x00,0x00,0x00,0x00,0xfc, // 0x3d + 0x0c,0x18,0x30,0x60,0x00,0x60,0x30,0x18, // 0x3e + 0x18,0x0c,0xcc,0x78,0x00,0x30,0x00,0x30, // 0x3f + 0xde,0xde,0xc6,0x7c,0x00,0x78,0xc0,0xde, // 0x40 + 0xcc,0xcc,0x78,0x30,0x00,0xcc,0xcc,0xfc, // 0x41 + 0x7c,0x66,0x66,0xfc,0x00,0xfc,0x66,0x66, // 0x42 + 0xc0,0xc0,0x66,0x3c,0x00,0x3c,0x66,0xc0, // 0x43 + 0x66,0x66,0x6c,0xfc,0x00,0xfc,0x6c,0x66, // 0x44 + 0x78,0x68,0x62,0xfe,0x00,0xfe,0x62,0x68, // 0x45 + 0x78,0x68,0x62,0xfe,0x00,0xf0,0x60,0x68, // 0x46 + 0xc0,0xc0,0x66,0x3c,0x00,0x3e,0x66,0xce, // 0x47 + 0xfc,0xcc,0xcc,0xcc,0x00,0xcc,0xcc,0xcc, // 0x48 + 0x30,0x30,0x30,0x78,0x00,0x78,0x30,0x30, // 0x49 + 0x0c,0x0c,0x0c,0x1e,0x00,0x78,0xcc,0xcc, // 0x4a + 0x78,0x6c,0x66,0xe6,0x00,0xe6,0x66,0x6c, // 0x4b + 0x60,0x60,0x60,0xf0,0x00,0xfe,0x66,0x62, // 0x4c + 0xd6,0xfe,0xee,0xc6,0x00,0xc6,0xc6,0xc6, // 0x4d + 0xde,0xf6,0xe6,0xc6,0x00,0xc6,0xc6,0xce, // 0x4e + 0xc6,0xc6,0x6c,0x38,0x00,0x38,0x6c,0xc6, // 0x4f + 0x7c,0x66,0x66,0xfc,0x00,0xf0,0x60,0x60, // 0x50 + 0xcc,0xcc,0xcc,0x78,0x00,0x1c,0x78,0xdc, // 0x51 + 0x7c,0x66,0x66,0xfc,0x00,0xe6,0x6c,0x78, // 0x52 + 0x38,0xe0,0xcc,0x78,0x00,0x78,0xcc,0x1c, // 0x53 + 0x30,0x30,0xb4,0xfc,0x00,0x78,0x30,0x30, // 0x54 + 0xcc,0xcc,0xcc,0xcc,0x00,0xfc,0xcc,0xcc, // 0x55 + 0xcc,0xcc,0xcc,0xcc,0x00,0x30,0x78,0xcc, // 0x56 + 0xd6,0xc6,0xc6,0xc6,0x00,0xc6,0xee,0xfe, // 0x57 + 0x38,0x6c,0xc6,0xc6,0x00,0xc6,0xc6,0x6c, // 0x58 + 0x78,0xcc,0xcc,0xcc,0x00,0x78,0x30,0x30, // 0x59 + 0x30,0x98,0xcc,0xfe,0x00,0xfe,0xc6,0x62, // 0x5a + 0x60,0x60,0x60,0x78,0x00,0x78,0x60,0x60, // 0x5b + 0x18,0x30,0x60,0xc0,0x00,0x02,0x06,0x0c, // 0x5c + 0x18,0x18,0x18,0x78,0x00,0x78,0x18,0x18, // 0x5d + 0xc6,0x6c,0x38,0x10,0x00,0x00,0x00,0x00, // 0x5e + 0x00,0x00,0x00,0x00,0xff,0x00,0x00,0x00, // 0x5f + 0x00,0x18,0x30,0x30,0x00,0x00,0x00,0x00, // 0x60 + 0x0c,0x78,0x00,0x00,0x00,0x76,0xcc,0x7c, // 0x61 + 0x66,0x7c,0x60,0xe0,0x00,0xbc,0x66,0x66, // 0x62 + 0xcc,0x78,0x00,0x00,0x00,0x78,0xcc,0xc0, // 0x63 + 0x7c,0x0c,0x0c,0x1c,0x00,0x76,0xcc,0xcc, // 0x64 + 0xcc,0x78,0x00,0x00,0x00,0x78,0xc0,0xfc, // 0x65 + 0xf0,0x60,0x6c,0x38,0x00,0xf0,0x60,0x60, // 0x66 + 0xcc,0x76,0x00,0x00,0xf8,0x0c,0x7c,0xcc, // 0x67 + 0x76,0x6c,0x60,0xe0,0x00,0xe6,0x66,0x66, // 0x68 + 0x30,0x70,0x00,0x30,0x00,0x78,0x30,0x30, // 0x69 + 0x18,0x78,0x00,0x18,0x70,0xd8,0x18,0x18, // 0x6a + 0x6c,0x66,0x60,0xe0,0x00,0xe6,0x6c,0x78, // 0x6b + 0x30,0x30,0x30,0x70,0x00,0x78,0x30,0x30, // 0x6c + 0xfe,0xec,0x00,0x00,0x00,0xc6,0xc6,0xd6, // 0x6d + 0xcc,0xf8,0x00,0x00,0x00,0xcc,0xcc,0xcc, // 0x6e + 0xcc,0x78,0x00,0x00,0x00,0x78,0xcc,0xcc, // 0x6f + 0x66,0xdc,0x00,0x00,0xf0,0x60,0x7c,0x66, // 0x70 + 0xcc,0x76,0x00,0x00,0x1e,0x0c,0x7c,0xcc, // 0x71 + 0x6c,0xd8,0x00,0x00,0x00,0xf0,0x60,0x6c, // 0x72 + 0xc0,0x7c,0x00,0x00,0x00,0xf8,0x0c,0x78, // 0x73 + 0x30,0x7c,0x30,0x10,0x00,0x18,0x34,0x30, // 0x74 + 0xcc,0xcc,0x00,0x00,0x00,0x76,0xcc,0xcc, // 0x75 + 0xcc,0xcc,0x00,0x00,0x00,0x30,0x78,0xcc, // 0x76 + 0xc6,0xc6,0x00,0x00,0x00,0x6c,0xfe,0xd6, // 0x77 + 0x6c,0xc6,0x00,0x00,0x00,0xc6,0x6c,0x38, // 0x78 + 0xcc,0xcc,0x00,0x00,0xf8,0x0c,0x7c,0xcc, // 0x79 + 0x98,0xfc,0x00,0x00,0x00,0xfc,0x64,0x30, // 0x7a + 0xe0,0x30,0x30,0x1c,0x00,0x1c,0x30,0x30, // 0x7b + 0x00,0x18,0x18,0x18,0x00,0x18,0x18,0x18, // 0x7c + 0x1c,0x30,0x30,0xe0,0x00,0xe0,0x30,0x30, // 0x7d + 0x00,0x00,0xdc,0x76,0x00,0x00,0x00,0x00, // 0x7e + 0xc6,0x6c,0x38,0x10,0x00,0xfe,0xc6,0xc6, // 0x7f + 0xc0,0xc0,0xcc,0x78,0x60,0x30,0x78,0xcc, // 0x80 + 0xcc,0x00,0xcc,0x00,0x00,0x7e,0xcc,0xcc, // 0x81 + 0xcc,0x78,0x30,0x18,0x00,0x78,0xc0,0xfc, // 0x82 + 0x06,0x3c,0xc3,0x7e,0x00,0x3f,0x66,0x3e, // 0x83 + 0x0c,0x78,0x00,0xcc,0x00,0x7e,0xcc,0x7c, // 0x84 + 0x0c,0x78,0x30,0x60,0x00,0x7e,0xcc,0x7c, // 0x85 + 0x06,0x3c,0x66,0x3c,0x00,0x3f,0x66,0x3e, // 0x86 + 0xc0,0xcc,0x78,0x00,0x60,0x30,0x78,0xcc, // 0x87 + 0x66,0x3c,0xc3,0x7e,0x00,0x3c,0x60,0x7e, // 0x88 + 0xcc,0x78,0x00,0xcc,0x00,0x78,0xc0,0xfc, // 0x89 + 0xcc,0x78,0x30,0x60,0x00,0x78,0xc0,0xfc, // 0x8a + 0x30,0x70,0x00,0xcc,0x00,0x78,0x30,0x30, // 0x8b + 0x18,0x38,0xc6,0x7c,0x00,0x3c,0x18,0x18, // 0x8c + 0x30,0x70,0x30,0x60,0x00,0x78,0x30,0x30, // 0x8d + 0xcc,0x78,0x30,0xcc,0x00,0xcc,0xfc,0xcc, // 0x8e + 0x78,0x30,0x48,0x30,0x00,0xcc,0xfc,0xcc, // 0x8f + 0x60,0xfc,0x30,0x18,0x00,0xfc,0x60,0x78, // 0x90 + 0x0c,0x7f,0x00,0x00,0x00,0x7f,0xcc,0x7f, // 0x91 + 0xfe,0xcc,0x6c,0x3e,0x00,0xce,0xcc,0xcc, // 0x92 + 0x78,0x00,0xcc,0x78,0x00,0x78,0xcc,0xcc, // 0x93 + 0x78,0x00,0xcc,0x00,0x00,0x78,0xcc,0xcc, // 0x94 + 0x78,0x00,0x30,0x60,0x00,0x78,0xcc,0xcc, // 0x95 + 0xcc,0x00,0xcc,0x78,0x00,0x7e,0xcc,0xcc, // 0x96 + 0xcc,0x00,0x30,0x60,0x00,0x7e,0xcc,0xcc, // 0x97 + 0xcc,0x00,0xcc,0x00,0xf8,0x0c,0xfc,0xcc, // 0x98 + 0xc6,0x7c,0x00,0xc6,0x00,0x7c,0xc6,0xc6, // 0x99 + 0xcc,0xcc,0x00,0xcc,0x00,0x78,0xcc,0xcc, // 0x9a + 0xce,0x7c,0x00,0x00,0x00,0x7c,0xe6,0xd6, // 0x9b + 0xf0,0x64,0x6c,0x38,0x00,0xfc,0xe6,0x60, // 0x9c + 0xd6,0xce,0x6c,0x3a,0x00,0xb8,0x6c,0xe6, // 0x9d + 0x78,0xcc,0x00,0x00,0x00,0xcc,0x78,0x30, // 0x9e + 0x7e,0x18,0x1b,0x0e,0x70,0xd8,0x18,0x18, // 0x9f + 0x0c,0x78,0x30,0x18,0x00,0x7e,0xcc,0x7c, // 0xa0 + 0x30,0x70,0x30,0x18,0x00,0x78,0x30,0x30, // 0xa1 + 0x78,0x00,0x18,0x0c,0x00,0x78,0xcc,0xcc, // 0xa2 + 0xcc,0x00,0x18,0x0c,0x00,0x7e,0xcc,0xcc, // 0xa3 + 0xf8,0x00,0xdc,0x76,0x00,0xcc,0xcc,0xcc, // 0xa4 + 0xec,0x00,0xdc,0x76,0x00,0xcc,0xdc,0xfc, // 0xa5 + 0x3e,0x6c,0x6c,0x3c,0x00,0x00,0x7e,0x00, // 0xa6 + 0x3c,0x66,0x66,0x3c,0x00,0x00,0x7e,0x00, // 0xa7 + 0x60,0x30,0x00,0x30,0x00,0x78,0xcc,0xc0, // 0xa8 + 0xb9,0xa5,0x5a,0x3c,0x00,0x3c,0x66,0xa9, // 0xa9 + 0xfc,0x00,0x00,0x00,0x00,0x00,0x0c,0x0c, // 0xaa + 0x7e,0x78,0x6c,0xe6,0x1f,0x98,0xce,0x63, // 0xab + 0x73,0x78,0x6c,0xe6,0x03,0x9f,0xcd,0x67, // 0xac + 0x18,0x00,0x18,0x00,0x18,0x3c,0x3c,0x18, // 0xad + 0xcc,0x66,0x33,0x00,0x00,0x00,0x33,0x66, // 0xae + 0x33,0x66,0xcc,0x00,0x00,0x00,0xcc,0x66, // 0xaf + 0x88,0x22,0x88,0x22,0x88,0x22,0x88,0x22, // 0xb0 + 0xaa,0x55,0xaa,0x55,0xaa,0x55,0xaa,0x55, // 0xb1 + 0x77,0xdd,0x77,0xdd,0x77,0xdd,0x77,0xdd, // 0xb2 + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x18, // 0xb3 + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xf8, // 0xb4 + 0x78,0x30,0x18,0x0c,0x00,0xcc,0xfc,0xcc, // 0xb5 + 0x78,0x30,0x84,0x78,0x00,0xcc,0xfc,0xcc, // 0xb6 + 0x78,0x30,0x60,0xc0,0x00,0xcc,0xfc,0xcc, // 0xb7 + 0xa1,0xb9,0x42,0x3c,0x00,0x3c,0x42,0xb9, // 0xb8 + 0x06,0xf6,0x36,0x36,0x36,0x36,0x36,0xf6, // 0xb9 + 0x36,0x36,0x36,0x36,0x36,0x36,0x36,0x36, // 0xba + 0x06,0xfe,0x00,0x00,0x36,0x36,0x36,0xf6, // 0xbb + 0x06,0xf6,0x36,0x36,0x00,0x00,0x00,0xfe, // 0xbc + 0xc0,0x7e,0x18,0x18,0x18,0x18,0x7e,0xc0, // 0xbd + 0xfc,0x78,0xcc,0xcc,0x30,0x30,0xfc,0x30, // 0xbe + 0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xf8, // 0xbf + 0x18,0x18,0x18,0x18,0x00,0x00,0x00,0x1f, // 0xc0 + 0x18,0x18,0x18,0x18,0x00,0x00,0x00,0xff, // 0xc1 + 0x00,0x00,0x00,0x00,0x18,0x18,0x18,0xff, // 0xc2 + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0x1f, // 0xc3 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xff, // 0xc4 + 0x18,0x18,0x18,0x18,0x18,0x18,0x18,0xff, // 0xc5 + 0x0c,0x78,0xdc,0x76,0x00,0x7e,0xcc,0x7c, // 0xc6 + 0x78,0x30,0xdc,0x76,0x00,0xcc,0xfc,0xcc, // 0xc7 + 0x30,0x37,0x36,0x36,0x00,0x00,0x00,0x3f, // 0xc8 + 0x30,0x3f,0x00,0x00,0x36,0x36,0x36,0x37, // 0xc9 + 0x00,0xf7,0x36,0x36,0x00,0x00,0x00,0xff, // 0xca + 0x00,0xff,0x00,0x00,0x36,0x36,0x36,0xf7, // 0xcb + 0x30,0x37,0x36,0x36,0x36,0x36,0x36,0x37, // 0xcc + 0x00,0xff,0x00,0x00,0x00,0x00,0x00,0xff, // 0xcd + 0x00,0xf7,0x36,0x36,0x36,0x36,0x36,0xf7, // 0xce + 0x6c,0xfe,0x82,0x00,0x00,0x82,0xfe,0x6c, // 0xcf + 0x0c,0xd8,0x70,0xd8,0x00,0x38,0x6c,0x3c, // 0xd0 + 0xf6,0x66,0x6c,0xfc,0x00,0xfc,0x6c,0x66, // 0xd1 + 0x60,0xfc,0x84,0x78,0x00,0xfc,0x60,0x78, // 0xd2 + 0x60,0xfc,0x00,0xcc,0x00,0xfc,0x60,0x78, // 0xd3 + 0x60,0xfc,0x30,0x60,0x00,0xfc,0x60,0x78, // 0xd4 + 0xe0,0x40,0xc0,0x00,0x00,0x00,0x00,0x00, // 0xd5 + 0x30,0x78,0x30,0x18,0x00,0x78,0x30,0x30, // 0xd6 + 0x30,0x78,0x84,0x78,0x00,0x78,0x30,0x30, // 0xd7 + 0x30,0x78,0x00,0xcc,0x00,0x78,0x30,0x30, // 0xd8 + 0x18,0x18,0x18,0x18,0x00,0x00,0x00,0xf8, // 0xd9 + 0x00,0x00,0x00,0x00,0x18,0x18,0x18,0x1f, // 0xda + 0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff, // 0xdb + 0x00,0x00,0x00,0x00,0xff,0xff,0xff,0xff, // 0xdc + 0x00,0x18,0x18,0x18,0x00,0x18,0x18,0x18, // 0xdd + 0x30,0x78,0x30,0x60,0x00,0x78,0x30,0x30, // 0xde + 0xff,0xff,0xff,0xff,0x00,0x00,0x00,0x00, // 0xdf + 0xc6,0x7c,0x30,0x18,0x00,0x7c,0xc6,0xc6, // 0xe0 + 0xf8,0xcc,0x78,0x00,0xc0,0xc0,0xf8,0xcc, // 0xe1 + 0xc6,0x7c,0x82,0x7c,0x00,0x7c,0xc6,0xc6, // 0xe2 + 0xc6,0x7c,0x18,0x30,0x00,0x7c,0xc6,0xc6, // 0xe3 + 0x78,0x00,0xdc,0x76,0x00,0x78,0xcc,0xcc, // 0xe4 + 0xc6,0x7c,0xdc,0x76,0x00,0x7c,0xc6,0xc6, // 0xe5 + 0x66,0x66,0x66,0x00,0xc0,0x60,0x7c,0x66, // 0xe6 + 0x6c,0x78,0xe0,0x00,0x00,0xf0,0x60,0x78, // 0xe7 + 0x66,0x7c,0x60,0xf0,0x00,0xf0,0x60,0x7c, // 0xe8 + 0xcc,0xcc,0x30,0x18,0x00,0x78,0xcc,0xcc, // 0xe9 + 0xcc,0x00,0x84,0x78,0x00,0x78,0xcc,0xcc, // 0xea + 0xcc,0xcc,0x30,0x60,0x00,0x78,0xcc,0xcc, // 0xeb + 0xcc,0x00,0x30,0x18,0xf8,0x0c,0xfc,0xcc, // 0xec + 0xcc,0xcc,0x30,0x18,0x00,0x78,0x30,0x78, // 0xed + 0x00,0x00,0xfc,0x00,0x00,0x00,0x00,0x00, // 0xee + 0x00,0x00,0x30,0x18,0x00,0x00,0x00,0x00, // 0xef + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xfc, // 0xf0 + 0x30,0xfc,0x30,0x30,0x00,0xfc,0x00,0x30, // 0xf1 + 0xfc,0x00,0x00,0x00,0x00,0x00,0xfc,0x00, // 0xf2 + 0x33,0x78,0x2c,0xe6,0x03,0x9f,0xcd,0xe7, // 0xf3 + 0x7b,0xdb,0xdb,0x7f,0x00,0x1b,0x1b,0x1b, // 0xf4 + 0xcc,0x78,0xc3,0x7e,0xf8,0x8c,0x78,0xcc, // 0xf5 + 0xfc,0x00,0x30,0x30,0x00,0x30,0x30,0x00, // 0xf6 + 0x00,0x00,0x00,0x00,0x60,0x30,0x00,0x00, // 0xf7 + 0x38,0x6c,0x6c,0x38,0x00,0x00,0x00,0x00, // 0xf8 + 0x00,0x00,0xcc,0x00,0x00,0x00,0x00,0x00, // 0xf9 + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x18, // 0xfa + 0x18,0x18,0x78,0x38,0x00,0x00,0x00,0x7e, // 0xfb + 0x3c,0x38,0x30,0x00,0x00,0x30,0x38,0x3c, // 0xfc //play + 0x66,0x66,0x66,0x00,0x00,0x66,0x66,0x66, // 0xfd //buf + 0x7e,0x7e,0x7e,0x00,0x00,0x7e,0x7e,0x7e, // 0xfe //stop + 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // 0xff +};
diff -r 000000000000 -r 61dcd2c0299a fonts/font_8x8.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/fonts/font_8x8.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,17 @@ +#ifndef _FONT_8X8_H_ +#define _FONT_8X8_H_ + + +//----- DEFINES ----- +#define FONT8x8_START 0x20 +#define FONT8x8_END 0xFF +#define FONT8x8_WIDTH 8 +#define FONT8x8_HEIGHT 8 +#define FONT8x8_BYTES 1 + + +//----- GLOBALS ----- +extern const unsigned char font_8x8[]; + + +#endif //_FONT_8X8_H_
diff -r 000000000000 -r 61dcd2c0299a stringman.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/stringman.h Fri Jun 15 18:37:00 2012 +0000 @@ -0,0 +1,37 @@ +void itostr(char* buffer, int v) { + char temp[3]; + + //temp=""; + + if (v>99999) { + + snprintf(buffer,4,"%3i",v); + } else + + if (v>9999) { + snprintf(buffer,4,"%3i",v); + snprintf(temp,2,"k"); + buffer[3] = temp[1]; + + } else + + if (v>999) { + + snprintf(buffer,4,"%3i",v); + buffer[3] = buffer[2]; + snprintf(temp,2,"k"); + buffer[2] = temp[1]; + } else + if (v>99) { + snprintf(buffer,4,"%3i",v); + + } else + if (v>9) { + snprintf(buffer,4,"%3i",v); + + } else { + snprintf(buffer,4,"%3i",v); + + } + +} \ No newline at end of file