2012-11-04 16:24:46 +01:00
|
|
|
#ifndef _H_SSD1963_STM32F4
|
|
|
|
#define _H_SSD1963_STM32F4
|
|
|
|
|
|
|
|
#include "ssd1963_pins.h"
|
|
|
|
|
|
|
|
|
|
|
|
// Screen width (pixels)
|
|
|
|
#define SSD1963_SCR_WIDTH 480
|
|
|
|
// Screen height (pixels)
|
|
|
|
#define SSD1963_SCR_HEIGHT 272
|
|
|
|
|
|
|
|
|
|
|
|
// Commands
|
|
|
|
#define SSD1963_CMD_ 0x00
|
|
|
|
#define SSD1963_CMD_NOP 0x00
|
|
|
|
#define SSD1963_CMD_SOFT_RESET 0x01
|
|
|
|
#define SSD1963_CMD_ENTER_SLEEP_MODE 0x10
|
|
|
|
#define SSD1963_CMD_ENTER_NORMAL_MODE 0x13
|
|
|
|
#define SSD1963_CMD_EXIT_INVERT_MODE 0x20
|
|
|
|
#define SSD1963_CMD_SET_GAMMA_CURVE 0x26
|
|
|
|
#define SSD1963_CMD_SET_DISPLAY_OFF 0x28
|
|
|
|
#define SSD1963_CMD_SET_DISPLAY_ON 0x29
|
|
|
|
#define SSD1963_CMD_SET_TEAR_OFF 0x34
|
2012-11-05 09:10:58 +01:00
|
|
|
#define SSD1963_CMD_SET_ADDRESS_MODE 0x36
|
2012-11-04 16:24:46 +01:00
|
|
|
#define SSD1963_CMD_EXIT_IDLE_MODE 0x38
|
|
|
|
#define SSD1963_CMD_SET_LCD_MODE 0xb0
|
|
|
|
#define SSD1963_CMD_SET_HORI_PERIOD 0xb4
|
|
|
|
#define SSD1963_CMD_SET_VERT_PERIOD 0xb6
|
|
|
|
#define SSD1963_CMD_SET_GPIO_VALUE 0xba
|
|
|
|
#define SSD1963_CMD_SET_POST_PROC 0xbc
|
|
|
|
#define SSD1963_CMD_SET_PWM_CONF 0xbe
|
|
|
|
#define SSD1963_CMD_SET_PLL 0xe0
|
|
|
|
#define SSD1963_CMD_SET_PLL_MN 0xe2
|
|
|
|
#define SSD1963_CMD_SET_LSHIFT_FREQ 0xe6
|
|
|
|
#define SSD1963_CMD_SET_PIXEL_FORMAT 0xf0
|
|
|
|
|
|
|
|
|
2012-11-05 09:10:58 +01:00
|
|
|
// Command sequences
|
|
|
|
#define SSD1963_DATA(x) ( (u8)( (x) & 0x3f) )
|
|
|
|
#define SSD1963_COMMAND 0x40
|
|
|
|
#define SSD1963_DELAY 0x80
|
2012-11-04 16:24:46 +01:00
|
|
|
|
|
|
|
|
|
|
|
// Initialise the display controller
|
|
|
|
void ssd1963Init( void );
|
|
|
|
|
2012-11-05 09:10:58 +01:00
|
|
|
// Execute a sequence of commands from the specified address
|
|
|
|
void ssd1963RunSequence( const u8 * sequence , u32 size );
|
|
|
|
|
|
|
|
|
|
|
|
// Write a command to the SSD1963
|
|
|
|
#define ssd1963WriteCommand(command) \
|
|
|
|
do { \
|
|
|
|
_ssd1963_clear_rs; \
|
|
|
|
_ssd1963_write( command ); \
|
|
|
|
_ssd1963_clear_wr; \
|
|
|
|
_ssd1963_set_wr; \
|
|
|
|
} while ( FALSE )
|
|
|
|
|
|
|
|
// Write data to the SSD1963
|
|
|
|
#define ssd1963WriteData(data) \
|
|
|
|
do { \
|
|
|
|
_ssd1963_set_rs; \
|
|
|
|
_ssd1963_write( data ); \
|
|
|
|
_ssd1963_clear_wr; \
|
|
|
|
_ssd1963_set_wr; \
|
|
|
|
} while ( FALSE )
|
|
|
|
|
|
|
|
|
|
|
|
// Start writing data at the specified location
|
|
|
|
void ssd1963StartWriting( u32 x , u32 y );
|
|
|
|
|
2012-11-04 16:24:46 +01:00
|
|
|
|
|
|
|
#endif // _H_SSD1963_STM32F4
|