mirror of
https://github.com/RIOT-OS/RIOT.git
synced 2024-12-29 04:50:03 +01:00
162 lines
3.6 KiB
C
162 lines
3.6 KiB
C
/*
|
|
* Copyright (C) 2020 Freie Universität Berlin
|
|
*
|
|
* This file is subject to the terms and conditions of the GNU Lesser
|
|
* General Public License v2.1. See the file LICENSE in the top level
|
|
* directory for more details.
|
|
*/
|
|
|
|
/**
|
|
* @ingroup drivers_aip31068
|
|
* @brief Register definitions for the AIP31068 I2C LCD controller
|
|
* @author Hendrik van Essen <hendrik.ve@fu-berlin.de>
|
|
* @file
|
|
* @{
|
|
*/
|
|
|
|
#ifndef AIP31068_REGS_H
|
|
#define AIP31068_REGS_H
|
|
|
|
#include "bitarithm.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C"
|
|
{
|
|
#endif
|
|
|
|
/* Commands (page 18, table 3) */
|
|
|
|
/**
|
|
* @brief Clears entire display and sets cursor to position (0, 0).
|
|
*
|
|
* @note: Also changes AIP31068_BIT_ENTRY_MODE_INCREMENT to 1
|
|
*/
|
|
#define AIP31068_CMD_CLEAR_DISPLAY 0x01
|
|
|
|
/**
|
|
* @brief Sets cursor to position (0, 0) and resets display to original position
|
|
* before any shift operations.
|
|
*/
|
|
#define AIP31068_CMD_RETURN_HOME 0x02
|
|
|
|
/**
|
|
* @brief Sets cursor move direction and specifies display shift.
|
|
*/
|
|
#define AIP31068_CMD_ENTRY_MODE_SET 0x04
|
|
|
|
/**
|
|
* @brief Sets entire display on/off, cursor on/off, and blinking of cursor
|
|
* position character on/off.
|
|
*/
|
|
#define AIP31068_CMD_DISPLAY_CONTROL 0x08
|
|
|
|
/**
|
|
* @brief Moves cursor and shifts display.
|
|
*/
|
|
#define AIP31068_CMD_CURSOR_DISPLAY_SHIFT 0x10
|
|
|
|
/**
|
|
* @brief Sets interface data length, number of display lines and character
|
|
* font size.
|
|
*/
|
|
#define AIP31068_CMD_FUNCTION_SET 0x20
|
|
|
|
/**
|
|
* @brief Sets CGRAM address.
|
|
*/
|
|
#define AIP31068_CMD_SET_CGRAM_ADDR 0x40
|
|
|
|
/**
|
|
* @brief Sets DDRAM address.
|
|
*/
|
|
#define AIP31068_CMD_SET_DDRAM_ADDR 0x80
|
|
|
|
/* Bits for AIP31068_CMD_ENTRY_MODE_SET (page 16, section 3) */
|
|
|
|
/**
|
|
* @brief 0 = Decrement cursor after insertion
|
|
* 1 = Increment cursor after insertion
|
|
*/
|
|
#define AIP31068_BIT_ENTRY_MODE_INCREMENT BIT1
|
|
|
|
/**
|
|
* @brief 0 = No automated display scroll
|
|
* 1 = Automated display scroll
|
|
*/
|
|
#define AIP31068_BIT_ENTRY_MODE_AUTOINCREMENT BIT0
|
|
|
|
/* Bits for AIP31068_CMD_DISPLAY_CONTROL (page 16, section 4) */
|
|
|
|
/**
|
|
* @brief 0 = Display off
|
|
* 1 = Display on
|
|
*/
|
|
#define AIP31068_BIT_DISPLAY_CONTROL_DISPLAY BIT2
|
|
|
|
/**
|
|
* @brief 0 = Cursor off
|
|
* 1 = Cursor on
|
|
*/
|
|
#define AIP31068_BIT_DISPLAY_CONTROL_CURSOR BIT1
|
|
|
|
/**
|
|
* @brief 0 = Cursor blinking off
|
|
* 1 = Cursor blinking on
|
|
*/
|
|
#define AIP31068_BIT_DISPLAY_CONTROL_CURSOR_BLINKING BIT0
|
|
|
|
/* Bits for AIP31068_CMD_CURSOR_DISPLAY_SHIFT (page 17, section 5) */
|
|
|
|
/**
|
|
* @brief 0 = Shift the cursor position
|
|
* 1 = Scroll the display content
|
|
*/
|
|
#define AIP31068_BIT_CURSOR_DISPLAY_SHIFT_SELECTION BIT3
|
|
|
|
/**
|
|
* @brief 0 = Shift to the left
|
|
* 1 = Shift to the right
|
|
*/
|
|
#define AIP31068_BIT_CURSOR_DISPLAY_SHIFT_DIRECTION BIT2
|
|
|
|
/* Bits for AIP31068_CMD_FUNCTION_SET (page 17, section 6) */
|
|
|
|
/**
|
|
* @brief 0 = 4 bit interface data length
|
|
* 1 = 8 bit interface data length
|
|
*/
|
|
#define AIP31068_BIT_FUNCTION_SET_BITMODE BIT4
|
|
|
|
/**
|
|
* @brief 0 = Single line
|
|
* 1 = Two lines
|
|
*/
|
|
#define AIP31068_BIT_FUNCTION_SET_LINECOUNT BIT3
|
|
|
|
/**
|
|
* @brief 0 = 5x8 dots per character
|
|
* 1 = 5x10 dots per character
|
|
*/
|
|
#define AIP31068_BIT_FUNCTION_SET_FONTSIZE BIT2
|
|
|
|
/* Bits for control byte (page 12) */
|
|
|
|
/**
|
|
* @brief 0 = Last control byte
|
|
* 1 = Another control byte follows data byte
|
|
*/
|
|
#define AIP31068_BIT_CONTROL_BYTE_CO BIT7
|
|
|
|
/**
|
|
* @brief 0 = data byte interpreted as command
|
|
* 1 = data byte interpreted as data
|
|
*/
|
|
#define AIP31068_BIT_CONTROL_BYTE_RS BIT6
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif /* AIP31068_REGS_H */
|
|
/** @} */
|