4 * Created on: 21-06-2013
11 #include "libs/Kernel.h"
25 #define LCDPAGES (LCDHEIGHT+7)/8
26 #define FB_SIZE LCDWIDTH*LCDPAGES
29 #define ALL_BUTTON_BITS (BUTTON_UP|BUTTON_DOWN|BUTTON_LEFT|BUTTON_RIGHT|BUTTON_SELECT)
31 #define spi_frequency_checksum CHECKSUM("spi_frequency")
32 #define click_button_pin_checksum CHECKSUM("click_button_pin")
33 #define up_button_pin_checksum CHECKSUM("up_button_pin")
34 #define down_button_pin_checksum CHECKSUM("down_button_pin")
37 class ST7565
: public LcdBase
{
44 void setCursor(uint8_t col
, uint8_t row
);
46 void write_char(char value
);
47 void write(const char* line
, int len
);
49 void on_refresh(bool now
=false);
50 //encoder which dosent exist :/
51 uint8_t readButtons();
52 int readEncoderDelta();
53 int getEncoderResolution() { return 2; }
54 uint16_t get_screen_lines() { return 8; }
55 bool hasGraphics() { return true; }
57 //added ST7565 commands
58 void send_commands(const unsigned char* buf
, size_t size
);
59 void send_data(const unsigned char* buf
, size_t size
);
60 // set column and page number
61 void set_xy(int x
, int y
);
62 //send pic to whole screen
63 void send_pic(const unsigned char* data
);
65 int drawChar(int x
, int y
, unsigned char c
, int color
);
66 // blit a glyph of w pixels wide and h pixels high to x, y. offset pixel position in glyph by x_offset, y_offset.
67 // span is the width in bytes of the src bitmap
68 // The glyph bytes will be 8 bits of X pixels, msbit->lsbit from top left to bottom right
69 void bltGlyph(int x
, int y
, int w
, int h
, const uint8_t *glyph
, int span
= 0, int x_offset
=0, int y_offset
=0);
70 void renderGlyph(int x
, int y
, const uint8_t *g
, int pixelWidth
, int pixelHeight
);
71 void pixel(int x
, int y
, int colour
);
75 unsigned char *framebuffer
;
83 // text cursor position
87 #endif /* ST7565_H_ */