ILI9341 LCD GPIO 8bit接続 ドライバ Kuman K60((Kuman 2.8inch TFT LCD Shield))
[詳解]
#include "device.h"
#include "device/video_ioctl.h"
#include "device/vio_ioctl.h"
#include "timer.h"
#include "tkprintf.h"
#include "graphics.h"
#include "dkprintf.h"
[ソースコード]
|
#define | LCD_WIDTH 320 |
|
#define | LCD_HEIGHT 240 |
|
#define | LCD_ROTATION 0 |
| !!#define LCD_ROTATION 1 // 0:240x320, 1:320x240
|
|
#define | FMEM_NOP 0 |
|
#define | FMEM_WRITE 1 |
|
#define | FMEM_READ 2 |
|
#define | ILI9341_SOFTRESET 0x01 |
|
#define | ILI9341_DISPLAYOFF 0x28 |
|
#define | ILI9341_POWERCONTROL1 0xc0 |
|
#define | ILI9341_POWERCONTROL2 0xc1 |
|
#define | ILI9341_VCOMCONTROL1 0xc5 |
|
#define | ILI9341_VCOMCONTROL2 0xc7 |
|
#define | ILI9341_MEMCONTROL 0x36 |
|
#define | ILI9341_PIXELFORMAT 0x3a |
|
#define | ILI9341_FRAMECONTROL 0xb1 |
|
#define | ILI9341_ENTRYMODE 0xb7 |
|
#define | ILI9341_SLEEPOUT 0x11 |
|
#define | ILI9341_DISPLAYON 0x29 |
|
#define | ILI9341_COLADDRSET 0x2a |
|
#define | ILI9341_PAGEADDRSET 0x2b |
|
#define | ILI9341_MEMORYWRITE 0x2c |
|
#define | ILI9341_MEMORYREAD 0x2e |
|
#define | ILI9341_READID4 0xd3 |
|
#define | ILI9341_MADCTL_MY 0x80 |
|
#define | ILI9341_MADCTL_MX 0x40 |
|
#define | ILI9341_MADCTL_MV 0x20 |
|
#define | ILI9341_MADCTL_RGB 0x00 |
|
#define | ILI9341_MADCTL_BGR 0x08 |
|
|
static void | set_cs (unsigned int cs) |
|
static void | reset_ili9341 (void) |
|
static void | write_reg8 (unsigned char addr, unsigned char data) |
|
static void | write_reg16 (unsigned char addr, unsigned short data) |
|
static void | write_reg32 (unsigned char addr, unsigned int data) |
|
static unsigned int | read_reg32 (unsigned char addr) |
|
static void | set_window (int x1, int y1, int x2, int y2) |
|
static void | init_ili9341 (void) |
|
static void | fill_screen (unsigned short color) |
|
static int | ili9341_lcd_register (struct st_device *dev, char *param) |
|
static int | ili9341_lcd_read (struct st_device *dev, void *data, unsigned int size) |
|
static int | ili9341_lcd_write (struct st_device *dev, const void *data, unsigned int size) |
|
static int | ili9341_lcd_ioctl (struct st_device *dev, unsigned int com, unsigned int arg, void *param) |
|
|
static int | rotation = LCD_ROTATION |
|
static struct st_device * | gpio_dev |
|
static unsigned short | lcd_width = LCD_WIDTH |
|
static unsigned short | lcd_height = LCD_HEIGHT |
|
static unsigned short | fore_color = 0 |
|
static unsigned short | back_color = 0 |
|
static int | fmem_stat = FMEM_NOP |
|
static struct st_video_info | lcd_info |
|
const struct st_device | ili9341_lcd_device |
|
◆ ili9341_lcd_device
初期値:= {
.explan = "ILI9341(K60) LCD",
.info = (void *)&lcd_info,
.register_dev = ili9341_lcd_register,
.read = ili9341_lcd_read,
.write = ili9341_lcd_write,
.ioctl = ili9341_lcd_ioctl,
}
#define DEF_DEV_NAME_VIDEO
標準ビデオデバイス名
ili9341_lcd.c の 408 行目に定義があります。
◆ lcd_info
初期値:= {
.width = LCD_WIDTH,
.height = LCD_HEIGHT,
}
#define VIDEOTYPE_CMDDRAW
コマンドによる描画(フレームバッファなし)
#define VCOLORDEP_16
16ビットカラー
ili9341_lcd.c の 396 行目に定義があります。