Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Fork of TextLCD by
Diff: TextLCD_Config.h
- Revision:
- 39:e9c2319de9c5
- Parent:
- 38:cbe275b0b647
- Child:
- 40:d3496c3ea301
--- a/TextLCD_Config.h Sat Apr 18 11:33:02 2015 +0000 +++ b/TextLCD_Config.h Tue May 19 18:13:00 2015 +0000 @@ -7,6 +7,7 @@ * 2015, v05: WH, Clean up low-level _writeCommand() and _writeData(), Added support for alt fonttables (eg PCF21XX), Added ST7066_ACM for ACM1602 module, fixed contrast for ST7032 * 2015, v06: WH, Performance improvement I2C portexpander * 2015, v07: WH, Fixed Adafruit I2C/SPI portexpander pinmappings, fixed SYDZ Backlight + * 2015, v08: WH, Added defines to reduce memory footprint (eg LCD_ICON), added some I2C portexpander defines * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -41,23 +42,33 @@ #define LCD_SPI_N_3_24 1 /* Native SPI bus */ //Select options to reduce memory footprint (multiple options allowed) -#define LCD_UDC 1 /* Enable predefined UDC example*/ -#define LCD_PRINTF 1 /* Enable Stream implementation */ +#define LCD_UDC 1 /* Enable predefined UDC example*/ +#define LCD_PRINTF 1 /* Enable Stream implementation */ +#define LCD_ICON 1 /* Enable Icon implementation -2.0K codesize*/ +#define LCD_ORIENT 1 /* Enable Orientation switch implementation -0.9K codesize*/ +#define LCD_BIGFONT 0 /* Enable Big Font implementation -0.6K codesize */ +#define LCD_INVERT 0 /* Enable display Invert implementation -0.5K codesize*/ +#define LCD_POWER 0 /* Enable Power control implementation -0.1K codesize*/ +#define LCD_BLINK 1 /* Enable UDC and Icon Blink control implementation -0.8K codesize*/ -//Select option to activate default fonttable or alternatively use conversion for specific controller versions (eg PCF2119C) -#define LCD_DEFAULT_FONT 1 +//Select option to activate default fonttable or alternatively use conversion for specific controller versions (eg PCF2119C, PCF2119R) +#define LCD_DEFAULT_FONT 0 //Pin Defines for I2C PCF8574/PCF8574A or MCP23008 and SPI 74595 bus expander interfaces //Different commercially available LCD portexpanders use different wiring conventions. //LCD and serial portexpanders should be wired according to the tables below. // //Select Serial Port Expander Hardware module (one option only) -#define DEFAULT 1 +#define DEFAULT 0 #define ADAFRUIT 0 #define DFROBOT 0 +#define LCM1602 0 #define YWROBOT 0 #define GYLCD 0 -#define SYDZ 0 +#define MJKDZ 0 +#define SYDZ 1 +#define WIDEHK 0 +#define LCDPLUG 0 #if (DEFAULT==1) //Definitions for default (WH) mapping between serial port expander pins and LCD controller @@ -194,15 +205,15 @@ #define BACKLIGHT_INV 0 #endif -#if (YWROBOT==1) +#if ((YWROBOT==1) || (LCM1602==1)) //Definitions for YWROBOT LCM1602 V1 Module mapping between serial port expander pins and LCD controller. -//Very similar to DFROBOT. This hardware uses PCF8574. +//Very similar to DFROBOT. Also marked as 'Funduino'. This hardware uses PCF8574. //Slaveaddress may be set by solderbridges (default 0x4E). SDA/SCL has no pullup Resistors onboard. //See http://arduino-info.wikispaces.com/LCD-Blue-I2C // //Note: LCD RW pin must be kept LOW // E2 is not available on default hardware and so it does not support LCD40x4 (second controller) -// BL is used to control backlight, reverse logic: Low turns on Backlight. This is handled in setBacklight() +// BL is used to control backlight. //I2C bus expander PCF8574 interface #define LCD_BUS_I2C_RS (1 << 0) @@ -236,8 +247,8 @@ #define BACKLIGHT_INV 0 #endif -#if (GYLCD==1) -//Definitions for Arduino-IIC-LCD GY-LCD-V1 Module mapping between serial port expander pins and LCD controller. +#if ((GYLCD==1) || (MJKDZ==1)) +//Definitions for Arduino-IIC-LCD GY-LCD-V1, for GY-IICLCD and for MJKDZ Module mapping between serial port expander pins and LCD controller. //Very similar to DFROBOT. This hardware uses PCF8574. //Slaveaddress may be set by solderbridges (default 0x4E). SDA/SCL has pullup Resistors onboard. //See http://arduino-info.wikispaces.com/LCD-Blue-I2C @@ -320,6 +331,93 @@ #define BACKLIGHT_INV 0 #endif +#if (WIDEHK==1) +//Definitions for WIDE.HK I2C backpack mapping between serial port expander pins and LCD controller +//This hardware uses an MCP23008 I2C expander. +//Slaveaddress is hardcoded at 0x4E. SDA/SCL has pullup Resistors onboard (3k3). +//See http://www.wide.hk +// +//Note: LCD RW pin must be kept LOW +// E2 is not available on this hardware and so it does not support LCD40x4 (second controller) +// BL is used to control backlight +// + +//I2C bus expander (MCP23008) interface +#define LCD_BUS_I2C_D4 (1 << 0) +#define LCD_BUS_I2C_D5 (1 << 1) +#define LCD_BUS_I2C_D6 (1 << 2) +#define LCD_BUS_I2C_D7 (1 << 3) +#define LCD_BUS_I2C_RS (1 << 4) +#define LCD_BUS_I2C_RW (1 << 5) +#define LCD_BUS_I2C_BL (1 << 6) +#define LCD_BUS_I2C_E (1 << 7) + +#define LCD_BUS_I2C_E2 (1 << 5) + +//SPI bus expander (74595) interface, same as I2C +#define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4 +#define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5 +#define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6 +#define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7 +#define LCD_BUS_SPI_RS LCD_BUS_I2C_RS +#define LCD_BUS_SPI_RW LCD_BUS_I2C_RW +#define LCD_BUS_SPI_BL LCD_BUS_I2C_BL +#define LCD_BUS_SPI_E LCD_BUS_I2C_E + +#define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2 + +//Force I2C portexpander type +#define PCF8574 0 +#define MCP23008 1 + +//Inverted Backlight control +#define BACKLIGHT_INV 0 +#endif + +#if (LCDPLUG==1) +//Definitions for Jeelabs LCD_Plug I2C backpack mapping between serial port expander pins and LCD controller +//This hardware uses an MCP23008 I2C expander. +//Slaveaddress is hardcoded at 0x48. SDA/SCL has no pullup Resistors onboard. +//See http://jeelabs.net/projects/hardware/wiki/lcd_plug +// +//Note: LCD RW pin must be kept LOW +// E2 is available on a plug and so it does support LCD40x4 (second controller) +// BL is used to control backlight +// + +//I2C bus expander (MCP23008) interface +#define LCD_BUS_I2C_D4 (1 << 0) +#define LCD_BUS_I2C_D5 (1 << 1) +#define LCD_BUS_I2C_D6 (1 << 2) +#define LCD_BUS_I2C_D7 (1 << 3) +#define LCD_BUS_I2C_RS (1 << 4) +#define LCD_BUS_I2C_E2 (1 << 5) +#define LCD_BUS_I2C_E (1 << 6) +#define LCD_BUS_I2C_BL (1 << 7) + +#define LCD_BUS_I2C_RW (1 << 5) + +//SPI bus expander (74595) interface, same as I2C +#define LCD_BUS_SPI_D4 LCD_BUS_I2C_D4 +#define LCD_BUS_SPI_D5 LCD_BUS_I2C_D5 +#define LCD_BUS_SPI_D6 LCD_BUS_I2C_D6 +#define LCD_BUS_SPI_D7 LCD_BUS_I2C_D7 +#define LCD_BUS_SPI_RS LCD_BUS_I2C_RS +#define LCD_BUS_SPI_E2 LCD_BUS_I2C_E2 +#define LCD_BUS_SPI_E LCD_BUS_I2C_E +#define LCD_BUS_SPI_BL LCD_BUS_I2C_BL + +#define LCD_BUS_SPI_RW LCD_BUS_I2C_RW + +//Force I2C portexpander type +#define PCF8574 0 +#define MCP23008 1 + +//Inverted Backlight control +#define BACKLIGHT_INV 0 +#endif + + //Bitpattern Defines for I2C PCF8574/PCF8574A, MCP23008 and SPI 74595 Bus expanders //Don't change! #define LCD_BUS_I2C_MSK (LCD_BUS_I2C_D4 | LCD_BUS_I2C_D5 | LCD_BUS_I2C_D6 | LCD_BUS_I2C_D7)
