Parallel to I2C for Intelligent LED Display module PD2435~7 / PD3535~7 / PD4435~7 (OSRAM)

Dependents:   i2cleddisp_sample WeatherPlatform_20110408 WeatherPlatform WeatherStation

Committer:
okini3939
Date:
Thu Oct 21 11:51:14 2010 +0000
Revision:
0:eae10b76cd72

        

Who changed what in which revision?

UserRevisionLine numberNew contents of line
okini3939 0:eae10b76cd72 1 /*
okini3939 0:eae10b76cd72 2 * mbed library for I2C LED Display
okini3939 0:eae10b76cd72 3 * Copyright (c) 2010 Hiroshi Suga
okini3939 0:eae10b76cd72 4 * Released under the MIT License: http://mbed.org/license/mit
okini3939 0:eae10b76cd72 5 *
okini3939 0:eae10b76cd72 6 * This product includes:
okini3939 0:eae10b76cd72 7 * mbed TextLCD Library, for a 4-bit LCD based on HD44780
okini3939 0:eae10b76cd72 8 * Copyright (c) 2007-2010, sford
okini3939 0:eae10b76cd72 9 */
okini3939 0:eae10b76cd72 10
okini3939 0:eae10b76cd72 11 #ifndef I2CLEDDisp_H
okini3939 0:eae10b76cd72 12 #define I2CLEDDisp_H
okini3939 0:eae10b76cd72 13
okini3939 0:eae10b76cd72 14 #include "mbed.h"
okini3939 0:eae10b76cd72 15
okini3939 0:eae10b76cd72 16 #define I2CLEDDisp_ADDR 0x78
okini3939 0:eae10b76cd72 17
okini3939 0:eae10b76cd72 18 enum I2CLEDDispType {
okini3939 0:eae10b76cd72 19 LEDDISP4x1 = 1,
okini3939 0:eae10b76cd72 20 LEDDISP4x1x2 = 2,
okini3939 0:eae10b76cd72 21 LEDDISP4x1x3 = 3,
okini3939 0:eae10b76cd72 22 LEDDISP4x1x4 = 4
okini3939 0:eae10b76cd72 23 };
okini3939 0:eae10b76cd72 24
okini3939 0:eae10b76cd72 25 enum I2CLEDDispConfig {
okini3939 0:eae10b76cd72 26 LEDDISPCFG_ENABLE = 0x80,
okini3939 0:eae10b76cd72 27 LEDDISPCFG_SPEED = 0x40,
okini3939 0:eae10b76cd72 28 LEDDISPCFG_ADDR1 = 0x20,
okini3939 0:eae10b76cd72 29 LEDDISPCFG_ADDR0 = 0x10,
okini3939 0:eae10b76cd72 30 LEDDISPCFG_INIT = 0x08
okini3939 0:eae10b76cd72 31 };
okini3939 0:eae10b76cd72 32
okini3939 0:eae10b76cd72 33 enum I2CLEDDispControl {
okini3939 0:eae10b76cd72 34 LEDDISP_CONTROL_B0 = 0x00,
okini3939 0:eae10b76cd72 35 LEDDISP_CONTROL_B25 = 0x01,
okini3939 0:eae10b76cd72 36 LEDDISP_CONTROL_B50 = 0x02,
okini3939 0:eae10b76cd72 37 LEDDISP_CONTROL_B100 = 0x03,
okini3939 0:eae10b76cd72 38 LEDDISP_CONTROL_AC = 0x00,
okini3939 0:eae10b76cd72 39 LEDDISP_CONTROL_AB = 0x04,
okini3939 0:eae10b76cd72 40 LEDDISP_CONTROL_ABC = 0x08,
okini3939 0:eae10b76cd72 41 LEDDISP_CONTROL_ACC = 0x0c,
okini3939 0:eae10b76cd72 42 LEDDISP_CONTROL_ATTRIB = 0x10,
okini3939 0:eae10b76cd72 43 LEDDISP_CONTROL_BLINK = 0x20,
okini3939 0:eae10b76cd72 44 LEDDISP_CONTROL_TEST = 0x40,
okini3939 0:eae10b76cd72 45 LEDDISP_CONTROL_CLEAR = 0x80
okini3939 0:eae10b76cd72 46 };
okini3939 0:eae10b76cd72 47
okini3939 0:eae10b76cd72 48 class I2CLEDDisp : public Stream {
okini3939 0:eae10b76cd72 49 public:
okini3939 0:eae10b76cd72 50 I2CLEDDisp (PinName p_sda, PinName p_scl, int p_i2caddr = I2CLEDDisp_ADDR, I2CLEDDispType p_type = LEDDISP4x1, I2CLEDDispControl p_ctrl = LEDDISP_CONTROL_B100);
okini3939 0:eae10b76cd72 51 I2CLEDDisp (I2C& p_i2c, int p_i2caddr = I2CLEDDisp_ADDR, I2CLEDDispType p_type = LEDDISP4x1, I2CLEDDispControl p_ctrl = LEDDISP_CONTROL_B100);
okini3939 0:eae10b76cd72 52
okini3939 0:eae10b76cd72 53 void locate (int, int);
okini3939 0:eae10b76cd72 54 void cls ();
okini3939 0:eae10b76cd72 55 void disp_cfg (I2CLEDDispConfig);
okini3939 0:eae10b76cd72 56
okini3939 0:eae10b76cd72 57 protected:
okini3939 0:eae10b76cd72 58 virtual int _putc (int);
okini3939 0:eae10b76cd72 59 virtual int _getc ();
okini3939 0:eae10b76cd72 60
okini3939 0:eae10b76cd72 61 int address (int, int);
okini3939 0:eae10b76cd72 62 int rows ();
okini3939 0:eae10b76cd72 63 int cols ();
okini3939 0:eae10b76cd72 64 void init (int, I2CLEDDispType, I2CLEDDispControl);
okini3939 0:eae10b76cd72 65 void disp_out (int, int);
okini3939 0:eae10b76cd72 66 int disp_in (int);
okini3939 0:eae10b76cd72 67
okini3939 0:eae10b76cd72 68 I2C i2c;
okini3939 0:eae10b76cd72 69 int i2caddr, addr;
okini3939 0:eae10b76cd72 70 I2CLEDDispType type;
okini3939 0:eae10b76cd72 71 I2CLEDDispControl ctrl;
okini3939 0:eae10b76cd72 72 int x, y;
okini3939 0:eae10b76cd72 73 };
okini3939 0:eae10b76cd72 74
okini3939 0:eae10b76cd72 75 #endif