Wim Huiskamp / TextLCD

Revision:
35:311be6444a39
Parent:
34:e5a0dcb43ecc
Child:
36:9f5f86dfd44a
--- a/TextLCD_Config.h	Sat Sep 27 12:38:27 2014 +0000
+++ b/TextLCD_Config.h	Fri Oct 10 15:47:56 2014 +0000
@@ -1,6 +1,7 @@
 /* mbed TextLCD Library, for a 4-bit LCD based on HD44780
  * Copyright (c) 2014, WH
  *               2014, v01: WH, Extracted from TextLCD.h as of v14
+ *               2014, v02: WH, Added AC780 support, added I2C expander modules, fixed setBacklight() for inverted logic modules. Fixed bug in LCD_SPI_N define
  *
  * Permission is hereby granted, free of charge, to any person obtaining a copy
  * of this software and associated documentation files (the "Software"), to deal
@@ -28,11 +29,12 @@
 #define LCD_I2C        1           /* I2C Expander PCF8574/MCP23008 */
 #define LCD_SPI        1           /* SPI Expander SN74595          */
 #define LCD_I2C_N      1           /* Native I2C bus     */
+#define LCD_SPI_N      1           /* Native SPI bus     */
 #define LCD_SPI_N_3_9  1           /* Native SPI bus     */
 #define LCD_SPI_N_3_10 1           /* Native SPI bus     */
 #define LCD_SPI_N_3_16 1           /* Native SPI bus     */
 #define LCD_SPI_N_3_24 1           /* Native SPI bus     */
-#define LCD_SPI_N_4    1           /* Native SPI bus     */
+
 
 //Select options to reduce memory footprint (multiple options allowed)
 #define LCD_UDC        1           /* Enable predefined UDC example*/                
@@ -45,6 +47,9 @@
 #define DEFAULT        1
 #define ADAFRUIT       0
 #define DFROBOT        0
+#define YWROBOT        0
+#define GYLCD          0
+#define SYDZ           0
 
 //Select Hardware module (one option only)
 #if (DEFAULT==1)
@@ -69,11 +74,15 @@
 //Select I2C Portexpander type (one option only)
 #define PCF8574        1
 #define MCP23008       0
+
+//Inverted Backlight control
+#define BACKLIGHT_INV  0
 #endif
 
 #if (ADAFRUIT==1)
 //Definitions for Adafruit i2cspilcdbackpack mapping between serial port expander pins and LCD controller
 //This hardware supports both an I2C expander (MCP23008) and an SPI expander (74595) selectable by a jumper.
+//Slaveaddress may be set by solderbridges (default 0x40). SDA/SCL has pullup Resistors onboard.
 //See http://www.ladyada.net/products/i2cspilcdbackpack
 //
 //Note: LCD RW pin must be kept LOW
@@ -93,15 +102,53 @@
 //Force I2C portexpander type
 #define PCF8574        0
 #define MCP23008       1
+
+//Inverted Backlight control
+#define BACKLIGHT_INV  0
 #endif
 
 #if (DFROBOT==1)
 //Definitions for DFROBOT LCD2004 Module mapping between serial port expander pins and LCD controller
 //This hardware uses PCF8574 and is different from earlier/different Arduino I2C LCD displays
+//Slaveaddress hardwired to 0x4E. SDA/SCL has pullup Resistors onboard.
+//See http://arduino-info.wikispaces.com/LCD-Blue-I2C
+//
+//Definitions for DFROBOT V1.1 
+//This hardware uses PCF8574. Slaveaddress may be set by jumpers (default 0x40).
+//SDA/SCL has pullup Resistors onboard and features a voltage level converter 3V3 <-> 5V.
+//See http://www.dfrobot.com/index.php?route=product/product&product_id=135
+//
+//
+//Note: LCD RW pin must be kept LOW
+//      E2 is not available on default Arduino hardware and so it does not support LCD40x4 (second controller)
+//      BL is used to control backlight
+#define D_LCD_PIN_RS   0
+#define D_LCD_PIN_RW   1
+#define D_LCD_PIN_E    2
+#define D_LCD_PIN_BL   3
+#define D_LCD_PIN_D4   4
+#define D_LCD_PIN_D5   5
+#define D_LCD_PIN_D6   6
+#define D_LCD_PIN_D7   7
+
+#define D_LCD_PIN_E2   D_LCD_PIN_RW
+
+//Force I2C portexpander type
+#define PCF8574        1
+#define MCP23008       0
+
+//Inverted Backlight control
+#define BACKLIGHT_INV  0
+#endif
+
+#if (YWROBOT==1)
+//Definitions for YWROBOT LCM1602 V1 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 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 Arduino hardware and so it does not support LCD40x4 (second controller)
+//      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()
 #define D_LCD_PIN_RS   0
 #define D_LCD_PIN_RW   1
@@ -117,8 +164,66 @@
 //Force I2C portexpander type
 #define PCF8574        1
 #define MCP23008       0
+
+//Inverted Backlight control
+#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. 
+//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
+//
+//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()
+#define D_LCD_PIN_D4   0
+#define D_LCD_PIN_D5   1
+#define D_LCD_PIN_D6   2
+#define D_LCD_PIN_D7   3
+#define D_LCD_PIN_EN   4
+#define D_LCD_PIN_RW   5
+#define D_LCD_PIN_RS   6
+#define D_LCD_PIN_BL   7
+
+#define D_LCD_PIN_E2   D_LCD_PIN_RW
+
+//Force I2C portexpander type
+#define PCF8574        1
+#define MCP23008       0
+
+//Force Inverted Backlight control
+#define BACKLIGHT_INV  1
+#endif
+
+#if (SYDZ==1)
+//Definitions for SYDZ Module mapping between serial port expander pins and LCD controller. 
+//Very similar to DFROBOT. This hardware uses PCF8574A and uses inverted Backlight control
+//Slaveaddress may be set by switches (default 0x40). SDA/SCL has pullup Resistors onboard.
+//See ebay
+//
+//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()
+#define D_LCD_PIN_RS   0
+#define D_LCD_PIN_RW   1
+#define D_LCD_PIN_E    2
+#define D_LCD_PIN_BL   3
+#define D_LCD_PIN_D4   4
+#define D_LCD_PIN_D5   5
+#define D_LCD_PIN_D6   6
+#define D_LCD_PIN_D7   7
+
+#define D_LCD_PIN_E2   D_LCD_PIN_RW
+
+//Force I2C portexpander type
+#define PCF8574        1
+#define MCP23008       0
+
+//Force Inverted Backlight control
+#define BACKLIGHT_INV  1
+#endif
 
 //Bitpattern Defines for I2C PCF8574/PCF8574A, MCP23008 and SPI 74595 Bus expanders
 //