mirror of
https://github.com/arduino/Arduino.git
synced 2024-11-30 11:24:12 +01:00
86 lines
3.5 KiB
C
Executable File
86 lines
3.5 KiB
C
Executable File
/*! \file ks0108conf.h \brief Graphic LCD driver configuration. */
|
|
//*****************************************************************************
|
|
//
|
|
// File Name : 'ks0108conf.h'
|
|
// Title : Graphic LCD driver for HD61202/KS0108 displays
|
|
// Author : Pascal Stang - Copyright (C) 2001-2003
|
|
// Date : 10/19/2001
|
|
// Revised : 5/1/2003
|
|
// Version : 0.5
|
|
// Target MCU : Atmel AVR
|
|
// Editor Tabs : 4
|
|
//
|
|
// NOTE: This code is currently below version 1.0, and therefore is considered
|
|
// to be lacking in some functionality or documentation, or may not be fully
|
|
// tested. Nonetheless, you can expect most functions to work.
|
|
//
|
|
// This code is distributed under the GNU Public License
|
|
// which can be found at http://www.gnu.org/licenses/gpl.txt
|
|
//
|
|
//*****************************************************************************
|
|
|
|
|
|
#ifndef KS0108CONF_H
|
|
#define KS0108CONF_H
|
|
|
|
// define LCD hardware interface
|
|
// -LCD_MEMORY_INTERFACE assumes that the registers of the LCD have been mapped
|
|
// into the external memory space of the AVR processor memory bus
|
|
// -LCD_PORT_INTERFACE is a direct-connection interface from port pins to LCD
|
|
// SELECT (UNCOMMENT) ONLY ONE!
|
|
|
|
// *** NOTE: memory interface is not yet fully supported, but it might work
|
|
|
|
//#define GLCD_MEMORY_INTERFACE
|
|
#define GLCD_PORT_INTERFACE
|
|
|
|
// GLCD_PORT_INTERFACE specifics
|
|
#ifdef GLCD_PORT_INTERFACE
|
|
// make sure these parameters are not already defined elsewhere
|
|
#ifndef GLCD_CTRL_PORT
|
|
#define GLCD_CTRL_PORT PORTB // PORT for LCD control signals
|
|
#define GLCD_CTRL_DDR DDRB // DDR register of LCD_CTRL_PORT
|
|
#define GLCD_CTRL_RS PB0 // pin for LCD Register Select
|
|
#define GLCD_CTRL_RW PB1 // pin for LCD Read/Write
|
|
#define GLCD_CTRL_E PB2 // pin for LCD Enable
|
|
#define GLCD_CTRL_CS0 PB3 // pin for LCD Controller 0 Chip Select
|
|
#define GLCD_CTRL_CS1 PB4 // pin for LCD Controller 1 Chip Select(*)
|
|
#define GLCD_CTRL_CS2 PB6 // pin for LCD Controller 2 Chip Select(*)
|
|
#define GLCD_CTRL_CS3 PB7 // pin for LCD Controller 3 Chip Select(*)
|
|
#define GLCD_CTRL_RESET PB5 // pin for LCD Reset
|
|
// (*) NOTE: additonal controller chip selects are optional and
|
|
// will be automatically used per each step in 64 pixels of display size
|
|
// Example: Display with 128 hozizontal pixels uses 2 controllers
|
|
#endif
|
|
#ifndef GLCD_DATA_PORT
|
|
#define GLCD_DATA_PORT PORTC // PORT for LCD data signals
|
|
#define GLCD_DATA_DDR DDRC // DDR register of LCD_DATA_PORT
|
|
#define GLCD_DATA_PIN PINC // PIN register of LCD_DATA_PORT
|
|
#endif
|
|
#endif
|
|
|
|
// GLCD_MEMORY_INTERFACE specifics
|
|
#ifdef GLCD_MEMORY_INTERFACE
|
|
// make sure these parameters are not already defined elsewhere
|
|
#ifndef GLCD_CONTROLLER0_CTRL_ADDR
|
|
// absolute address of LCD Controller #0 CTRL and DATA registers
|
|
#define GLCD_CONTROLLER0_CTRL_ADDR 0x1000
|
|
#define GLCD_CONTROLLER0_DATA_ADDR 0x1001
|
|
// offset of other controllers with respect to controller0
|
|
#define GLCD_CONTROLLER_ADDR_OFFSET 0x0002
|
|
#endif
|
|
#endif
|
|
|
|
|
|
// LCD geometry defines (change these definitions to adapt code/settings)
|
|
#define GLCD_XPIXELS 128 // pixel width of entire display
|
|
#define GLCD_YPIXELS 64 // pixel height of entire display
|
|
#define GLCD_CONTROLLER_XPIXELS 64 // pixel width of one display controller
|
|
|
|
// Set text size of display
|
|
// These definitions are not currently used and will probably move to glcd.h
|
|
#define GLCD_TEXT_LINES 8 // visible lines
|
|
#define GLCD_TEXT_LINE_LENGTH 22 // internal line length
|
|
|
|
#endif
|