character LCD module to I2C adapter http://mbed.org/users/okini3939/notebook/i2c-lcd-library/

Dependents:   i2clcd_lib WeatherPlatform_20110408 WeatherPlatform WeatherStation ... more

Committer:
okini3939
Date:
Sun Feb 27 14:28:40 2011 +0000
Revision:
2:bc4583ce560e
Parent:
1:bf21aa3f7cdc

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:b069b7027af2 1 /*
okini3939 1:bf21aa3f7cdc 2 * mbed library for I2C LCD
okini3939 2:bc4583ce560e 3 * Copyright (c) 2011 Hiroshi Suga
okini3939 0:b069b7027af2 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 1:bf21aa3f7cdc 5 *
okini3939 2:bc4583ce560e 6 * This product includes:
okini3939 1:bf21aa3f7cdc 7 * mbed TextLCD Library, for a 4-bit LCD based on HD44780
okini3939 1:bf21aa3f7cdc 8 * Copyright (c) 2007-2010, sford
okini3939 0:b069b7027af2 9 */
okini3939 2:bc4583ce560e 10
okini3939 2:bc4583ce560e 11 /** @file I2CLCD.h
okini3939 2:bc4583ce560e 12 * @brief I2C LCD library (mbed Phone Platform)
okini3939 2:bc4583ce560e 13 */
okini3939 0:b069b7027af2 14
okini3939 0:b069b7027af2 15 #ifndef I2CLCD_H
okini3939 0:b069b7027af2 16 #define I2CLCD_H
okini3939 0:b069b7027af2 17
okini3939 0:b069b7027af2 18 #include "mbed.h"
okini3939 0:b069b7027af2 19
okini3939 2:bc4583ce560e 20 /**
okini3939 2:bc4583ce560e 21 * @brief default I2C address
okini3939 2:bc4583ce560e 22 */
okini3939 2:bc4583ce560e 23 #define I2CLCD_ADDR 0x7c
okini3939 2:bc4583ce560e 24
okini3939 2:bc4583ce560e 25 /**
okini3939 2:bc4583ce560e 26 * @brief LCD type
okini3939 2:bc4583ce560e 27 */
okini3939 0:b069b7027af2 28 enum I2CLCDType {
okini3939 0:b069b7027af2 29 LCD8x2,
okini3939 0:b069b7027af2 30 LCD16x1,
okini3939 0:b069b7027af2 31 LCD16x2,
okini3939 0:b069b7027af2 32 LCD16x2B,
okini3939 0:b069b7027af2 33 LCD16x4,
okini3939 0:b069b7027af2 34 LCD20x2,
okini3939 0:b069b7027af2 35 LCD20x4
okini3939 0:b069b7027af2 36 };
okini3939 0:b069b7027af2 37
okini3939 2:bc4583ce560e 38 /**
okini3939 2:bc4583ce560e 39 * @brief LCD config
okini3939 2:bc4583ce560e 40 */
okini3939 0:b069b7027af2 41 enum I2CLCDConfig {
okini3939 0:b069b7027af2 42 LCDCFG_ENABLE = 0x20,
okini3939 0:b069b7027af2 43 LCDCFG_PWMCOUNT = 0x10,
okini3939 0:b069b7027af2 44 LCDCFG_LED = 0x08,
okini3939 0:b069b7027af2 45 LCDCFG_3V = 0x04,
okini3939 0:b069b7027af2 46 LCDCFG_ADDR = 0x02,
okini3939 0:b069b7027af2 47 LCDCFG_INIT = 0x01
okini3939 0:b069b7027af2 48 };
okini3939 0:b069b7027af2 49
okini3939 2:bc4583ce560e 50 /**
okini3939 2:bc4583ce560e 51 * @brief I2CLCD class
okini3939 2:bc4583ce560e 52 */
okini3939 0:b069b7027af2 53 class I2CLCD : public Stream {
okini3939 0:b069b7027af2 54 public:
okini3939 2:bc4583ce560e 55 I2CLCD (PinName p_sda, PinName p_scl, int p_i2caddr = I2CLCD_ADDR, I2CLCDType p_type = LCD16x2, I2CLCDConfig p_config = LCDCFG_3V);
okini3939 2:bc4583ce560e 56 I2CLCD (I2C& p_i2c, int p_i2caddr = I2CLCD_ADDR, I2CLCDType p_type = LCD16x2, I2CLCDConfig p_config = LCDCFG_3V);
okini3939 0:b069b7027af2 57
okini3939 0:b069b7027af2 58 void locate (int, int);
okini3939 0:b069b7027af2 59 void cls ();
okini3939 0:b069b7027af2 60 void lcd_cfg (I2CLCDConfig);
okini3939 0:b069b7027af2 61
okini3939 0:b069b7027af2 62 protected:
okini3939 0:b069b7027af2 63 virtual int _putc (int);
okini3939 0:b069b7027af2 64 virtual int _getc ();
okini3939 0:b069b7027af2 65
okini3939 0:b069b7027af2 66 int address (int, int);
okini3939 0:b069b7027af2 67 int rows ();
okini3939 0:b069b7027af2 68 int cols ();
okini3939 2:bc4583ce560e 69 void init (int, I2CLCDType, I2CLCDConfig);
okini3939 2:bc4583ce560e 70 void lcd_out (char, char);
okini3939 2:bc4583ce560e 71 char lcd_in (char);
okini3939 0:b069b7027af2 72
okini3939 0:b069b7027af2 73 I2C i2c;
okini3939 2:bc4583ce560e 74 int i2caddr;
okini3939 0:b069b7027af2 75 I2CLCDType type;
okini3939 0:b069b7027af2 76 int x, y;
okini3939 0:b069b7027af2 77 };
okini3939 0:b069b7027af2 78
okini3939 0:b069b7027af2 79 #endif