Microchip® Advanced Software Framework

ili9225.c File Reference

API driver for ILI9225 TFT display component.

Copyright (c) 2011-2018 Microchip Technology Inc. and its subsidiaries.

#include "gpio.h"
#include "spi_master.h"
#include "conf_spi_master.h"
#include "ili9225.h"
#include "conf_ili9225.h"
#include <string.h>
#include <stdio.h>
#include <stdlib.h>
#include <assert.h>

Macros

#define ILI9225_SPI_BAUDRATE   12500000
 
#define LCD_DATA_CACHE_SIZE   ILI9225_LCD_WIDTH
 

Functions

static void ili9225_check_box_coordinates (uint32_t *p_ul_x1, uint32_t *p_ul_y1, uint32_t *p_ul_x2, uint32_t *p_ul_y2)
 Check box coordinates. More...
 
static void ili9225_delay (uint32_t ul_ms)
 Delay function. More...
 
void ili9225_disable_scroll (void)
 Disable the scrolling feature. More...
 
void ili9225_display_off (void)
 Turn off the LCD. More...
 
void ili9225_display_on (void)
 Turn on the LCD. More...
 
static void ili9225_draw_char (uint32_t ul_x, uint32_t ul_y, uint8_t uc_c)
 Draw an ASCII character on LCD. More...
 
uint32_t ili9225_draw_circle (uint32_t ul_x, uint32_t ul_y, uint32_t ul_r)
 Draw a circle on LCD. More...
 
uint32_t ili9225_draw_filled_circle (uint32_t ul_x, uint32_t ul_y, uint32_t ul_r)
 Draw a filled circle on LCD. More...
 
void ili9225_draw_filled_rectangle (uint32_t ul_x1, uint32_t ul_y1, uint32_t ul_x2, uint32_t ul_y2)
 Draw a filled rectangle on LCD. More...
 
void ili9225_draw_line (uint32_t ul_x1, uint32_t ul_y1, uint32_t ul_x2, uint32_t ul_y2)
 Draw a line on LCD. More...
 
static void ili9225_draw_line_bresenham (uint32_t ul_x1, uint32_t ul_y1, uint32_t ul_x2, uint32_t ul_y2)
 Draw a line on LCD, which is not horizontal or vertical. More...
 
uint32_t ili9225_draw_pixel (uint32_t ul_x, uint32_t ul_y)
 Draw a pixel on LCD. More...
 
void ili9225_draw_pixmap (uint32_t ul_x, uint32_t ul_y, uint32_t ul_width, uint32_t ul_height, const ili9225_color_t *p_ul_pixmap)
 Draw a pixmap on LCD. More...
 
void ili9225_draw_rectangle (uint32_t ul_x1, uint32_t ul_y1, uint32_t ul_x2, uint32_t ul_y2)
 Draw a rectangle on LCD. More...
 
void ili9225_draw_string (uint32_t ul_x, uint32_t ul_y, const uint8_t *p_str)
 Draw a string on LCD. More...
 
void ili9225_enable_scroll (uint8_t uc_linenum)
 
void ili9225_fill (ili9225_color_t us_color)
 Fill the LCD buffer with the specified color. More...
 
uint32_t ili9225_init (struct ili9225_opt_t *p_opt)
 Initialize the ILI9225 lcd driver. More...
 
void ili9225_scroll (uint8_t uc_startline, uint8_t uc_endline)
 Scroll up/down for the number of specified lines. More...
 
void ili9225_set_cursor_position (uint16_t ul_x, uint16_t ul_y)
 Set cursor of LCD screen. More...
 
void ili9225_set_display_direction (enum ili9225_display_direction e_dd, enum ili9225_shift_direction e_shd, enum ili9225_scan_direction e_scd)
 Set display direction. More...
 
void ili9225_set_foreground_color (uint32_t ul_rgb24bits)
 Set foreground color. More...
 
void ili9225_set_window (uint32_t ul_x, uint32_t ul_y, uint32_t ul_width, uint32_t ul_height)
 Set display window. More...
 
void ili9225_spi_handler (void)
 The SPI_Handler must be called by the SPI Interrupt Service Routine with the corresponding SPI instance to enable ILI9225 driver support. More...
 
static void ili9225_write_cmd (uint8_t uc_cmd)
 Send command to LCD controller. More...
 
static void ili9225_write_ram (uint16_t us_data)
 Write data to LCD GRAM. More...
 
static void ili9225_write_ram_buffer (const ili9225_color_t *p_us_buf, uint32_t ul_size)
 Write multiple data in buffer to LCD controller. More...
 
static void ili9225_write_ram_prepare (void)
 Prepare to write GRAM data. More...
 
static void ili9225_write_register (uint8_t uc_reg, ili9225_color_t us_data)
 Write data to LCD Register. More...
 

Variables

static volatile uint8_t g_by_transfend_flag = 0
 End transfer flag. More...
 
static ili9225_color_t g_ul_pixel_cache [LCD_DATA_CACHE_SIZE]
 
struct ili9225_font gfont = {10, 14}
 
const uint8_t p_uc_charset10x14 []
 Character set table for font 10x14 Coding format: Char height is 14 bits, which is coded using 2 bytes per column (2 unused bits). More...