
Use this version as starting point. Tested on Show2Me_V1 PCB (minor patches required).
Dependencies: GPS Library QEI SDFileSystem mbed
ST7565_LCD/ST7565_LCD.h@0:5c5a3012dbfc, 2018-09-03 (annotated)
- Committer:
- walter76
- Date:
- Mon Sep 03 01:54:41 2018 +0000
- Revision:
- 0:5c5a3012dbfc
working code, initial version
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
walter76 | 0:5c5a3012dbfc | 1 | /******************************************************************************* |
walter76 | 0:5c5a3012dbfc | 2 | * File Name : ST7565_LCD.c |
walter76 | 0:5c5a3012dbfc | 3 | * Author : Walter Trovò |
walter76 | 0:5c5a3012dbfc | 4 | * Date First Issued : 20/03/2012 |
walter76 | 0:5c5a3012dbfc | 5 | *******************************************************************************/ |
walter76 | 0:5c5a3012dbfc | 6 | |
walter76 | 0:5c5a3012dbfc | 7 | // ST7565R LCD module driver |
walter76 | 0:5c5a3012dbfc | 8 | |
walter76 | 0:5c5a3012dbfc | 9 | #ifndef __ST7565_LCD_H |
walter76 | 0:5c5a3012dbfc | 10 | #define __ST7565_LCD_H |
walter76 | 0:5c5a3012dbfc | 11 | |
walter76 | 0:5c5a3012dbfc | 12 | #include "mbed.h" |
walter76 | 0:5c5a3012dbfc | 13 | |
walter76 | 0:5c5a3012dbfc | 14 | // LCD commands and definitions |
walter76 | 0:5c5a3012dbfc | 15 | |
walter76 | 0:5c5a3012dbfc | 16 | #define LCD_WIDTH 128 |
walter76 | 0:5c5a3012dbfc | 17 | #define LCD_HEIGHT 64 |
walter76 | 0:5c5a3012dbfc | 18 | |
walter76 | 0:5c5a3012dbfc | 19 | #define CMD_DISPLAY_OFF 0xAE |
walter76 | 0:5c5a3012dbfc | 20 | #define CMD_DISPLAY_ON 0xAF |
walter76 | 0:5c5a3012dbfc | 21 | |
walter76 | 0:5c5a3012dbfc | 22 | #define CMD_SET_DISP_START_LINE 0x40 |
walter76 | 0:5c5a3012dbfc | 23 | #define CMD_SET_PAGE 0xB0 |
walter76 | 0:5c5a3012dbfc | 24 | |
walter76 | 0:5c5a3012dbfc | 25 | #define CMD_SET_COLUMN_UPPER 0x10 |
walter76 | 0:5c5a3012dbfc | 26 | #define CMD_SET_COLUMN_LOWER 0x00 |
walter76 | 0:5c5a3012dbfc | 27 | |
walter76 | 0:5c5a3012dbfc | 28 | #define CMD_SET_ADC_NORMAL 0xA0 |
walter76 | 0:5c5a3012dbfc | 29 | #define CMD_SET_ADC_REVERSE 0xA1 |
walter76 | 0:5c5a3012dbfc | 30 | |
walter76 | 0:5c5a3012dbfc | 31 | #define CMD_SET_DISP_NORMAL 0xA6 |
walter76 | 0:5c5a3012dbfc | 32 | #define CMD_SET_DISP_REVERSE 0xA7 |
walter76 | 0:5c5a3012dbfc | 33 | |
walter76 | 0:5c5a3012dbfc | 34 | #define CMD_SET_ALLPTS_NORMAL 0xA4 |
walter76 | 0:5c5a3012dbfc | 35 | #define CMD_SET_ALLPTS_ON 0xA5 |
walter76 | 0:5c5a3012dbfc | 36 | #define CMD_SET_BIAS_9 0xA2 |
walter76 | 0:5c5a3012dbfc | 37 | #define CMD_SET_BIAS_7 0xA3 |
walter76 | 0:5c5a3012dbfc | 38 | |
walter76 | 0:5c5a3012dbfc | 39 | #define CMD_RMW 0xE0 |
walter76 | 0:5c5a3012dbfc | 40 | #define CMD_RMW_CLEAR 0xEE |
walter76 | 0:5c5a3012dbfc | 41 | #define CMD_INTERNAL_RESET 0xE2 |
walter76 | 0:5c5a3012dbfc | 42 | #define CMD_SET_COM_NORMAL 0xC0 |
walter76 | 0:5c5a3012dbfc | 43 | #define CMD_SET_COM_REVERSE 0xC8 |
walter76 | 0:5c5a3012dbfc | 44 | #define CMD_SET_POWER_CONTROL 0x28 |
walter76 | 0:5c5a3012dbfc | 45 | #define CMD_SET_RESISTOR_RATIO 0x20 |
walter76 | 0:5c5a3012dbfc | 46 | #define CMD_SET_VOLUME_FIRST 0x81 |
walter76 | 0:5c5a3012dbfc | 47 | #define CMD_SET_VOLUME_SECOND 0 |
walter76 | 0:5c5a3012dbfc | 48 | #define CMD_SET_STATIC_OFF 0xAC |
walter76 | 0:5c5a3012dbfc | 49 | #define CMD_SET_STATIC_ON 0xAD |
walter76 | 0:5c5a3012dbfc | 50 | #define CMD_SET_STATIC_REG 0x0 |
walter76 | 0:5c5a3012dbfc | 51 | #define CMD_SET_BOOSTER_FIRST 0xF8 |
walter76 | 0:5c5a3012dbfc | 52 | #define CMD_SET_BOOSTER_234 0 |
walter76 | 0:5c5a3012dbfc | 53 | #define CMD_SET_BOOSTER_5 1 |
walter76 | 0:5c5a3012dbfc | 54 | #define CMD_SET_BOOSTER_6 3 |
walter76 | 0:5c5a3012dbfc | 55 | #define CMD_NOP 0xE3 |
walter76 | 0:5c5a3012dbfc | 56 | #define CMD_TEST 0xF0 |
walter76 | 0:5c5a3012dbfc | 57 | |
walter76 | 0:5c5a3012dbfc | 58 | #define swap(a, b) { unsigned short t = a; a = b; b = t; } |
walter76 | 0:5c5a3012dbfc | 59 | |
walter76 | 0:5c5a3012dbfc | 60 | // ------------- Functions prototype ----------------- |
walter76 | 0:5c5a3012dbfc | 61 | |
walter76 | 0:5c5a3012dbfc | 62 | |
walter76 | 0:5c5a3012dbfc | 63 | void SPI_Write(uint8_t data); |
walter76 | 0:5c5a3012dbfc | 64 | void LCD_cmd(uint8_t command); |
walter76 | 0:5c5a3012dbfc | 65 | void LCD_data(uint8_t data); |
walter76 | 0:5c5a3012dbfc | 66 | void LCD_reset(void); |
walter76 | 0:5c5a3012dbfc | 67 | void LCD_set_contrast(unsigned int level); |
walter76 | 0:5c5a3012dbfc | 68 | void LCD_write_buffer(unsigned int *buffer); |
walter76 | 0:5c5a3012dbfc | 69 | void LCD_clear(void); |
walter76 | 0:5c5a3012dbfc | 70 | void LCD_setpixel(unsigned int *buff, uint8_t x, uint8_t y, uint8_t color); |
walter76 | 0:5c5a3012dbfc | 71 | void LCD_clearpixel(unsigned int *buff, uint8_t x, uint8_t y); |
walter76 | 0:5c5a3012dbfc | 72 | void LCD_drawline(unsigned int *buff, uint8_t x0, uint8_t y0, uint8_t x1, uint8_t y1, uint8_t color); |
walter76 | 0:5c5a3012dbfc | 73 | void LCD_drawchar(unsigned int *buff, uint8_t x, uint8_t line, char c); |
walter76 | 0:5c5a3012dbfc | 74 | void LCD_drawstring(unsigned int *buff, uint8_t x, uint8_t line, char *c); |
walter76 | 0:5c5a3012dbfc | 75 | void Clear_buffer(unsigned int *buff); |
walter76 | 0:5c5a3012dbfc | 76 | |
walter76 | 0:5c5a3012dbfc | 77 | #endif |