Driver Library for our displays

Dependents:   dm_bubbles dm_calc dm_paint dm_sdcard_with_adapter ... more

Committer:
displaymodule
Date:
Mon Oct 12 08:35:35 2015 +0000
Revision:
14:2db7065edbec
Parent:
13:6ff2649b6c27
Important updates, compatible with the new mbed library?more platforms support. Recommended updates.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
displaymodule 13:6ff2649b6c27 1 /**********************************************************************************************
displaymodule 13:6ff2649b6c27 2 Copyright (c) 2015 DisplayModule. All rights reserved.
displaymodule 13:6ff2649b6c27 3
displaymodule 13:6ff2649b6c27 4 Redistribution and use of this source code, part of this source code or any compiled binary
displaymodule 13:6ff2649b6c27 5 based on this source code is permitted as long as the above copyright notice and following
displaymodule 13:6ff2649b6c27 6 disclaimer is retained.
displaymodule 13:6ff2649b6c27 7
displaymodule 13:6ff2649b6c27 8 DISCLAIMER:
displaymodule 13:6ff2649b6c27 9 THIS SOFTWARE IS SUPPLIED "AS IS" WITHOUT ANY WARRANTIES AND SUPPORT. DISPLAYMODULE ASSUMES
displaymodule 13:6ff2649b6c27 10 NO RESPONSIBILITY OR LIABILITY FOR THE USE OF THE SOFTWARE.
displaymodule 13:6ff2649b6c27 11 ********************************************************************************************/
displaymodule 13:6ff2649b6c27 12
displaymodule 13:6ff2649b6c27 13 #ifndef DM_TPFT6X06_h
displaymodule 13:6ff2649b6c27 14 #define DM_TPFT6X06_h
displaymodule 13:6ff2649b6c27 15
displaymodule 13:6ff2649b6c27 16 #include "dm_platform.h"
displaymodule 13:6ff2649b6c27 17 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 13:6ff2649b6c27 18 #include <Wire.h>
displaymodule 13:6ff2649b6c27 19 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 13:6ff2649b6c27 20 #include "mbed.h"
displaymodule 13:6ff2649b6c27 21 #endif
displaymodule 13:6ff2649b6c27 22
displaymodule 13:6ff2649b6c27 23 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 13:6ff2649b6c27 24 #define FT6x06_ADDR 0x38
displaymodule 13:6ff2649b6c27 25 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 13:6ff2649b6c27 26 #define FT6x06_ADDR 0x70
displaymodule 13:6ff2649b6c27 27 #endif
displaymodule 13:6ff2649b6c27 28
displaymodule 13:6ff2649b6c27 29 #define FT6x06_DEV_MODE 0x00
displaymodule 13:6ff2649b6c27 30 #define FT6x06_GEST_ID 0x01
displaymodule 13:6ff2649b6c27 31 #define FT6x06_TD_STATUS 0x02
displaymodule 13:6ff2649b6c27 32 #define FT6x06_TH_GROUP 0x80
displaymodule 13:6ff2649b6c27 33 #define FT6x06_PERIODACTIVE 0x88
displaymodule 13:6ff2649b6c27 34 #define FT6x06_CHIPER 0xA3
displaymodule 13:6ff2649b6c27 35 #define FT6x06_G_MODE 0xA4
displaymodule 13:6ff2649b6c27 36 #define FT6x06_FIRMID 0xA6
displaymodule 13:6ff2649b6c27 37 #define FT6x06_FOCALTECH_ID 0xA8
displaymodule 13:6ff2649b6c27 38 #define FT6x06_RELEASE_CODE_ID 0xAF
displaymodule 13:6ff2649b6c27 39
displaymodule 13:6ff2649b6c27 40 #define WAIT_ACK_TIMEOUT 100
displaymodule 13:6ff2649b6c27 41 #define COM_OK 0
displaymodule 13:6ff2649b6c27 42 #define ACK_ERROR 1
displaymodule 13:6ff2649b6c27 43
displaymodule 13:6ff2649b6c27 44 class DmTpFt6x06
displaymodule 13:6ff2649b6c27 45 {
displaymodule 13:6ff2649b6c27 46 public:
displaymodule 13:6ff2649b6c27 47 enum Display {
displaymodule 13:6ff2649b6c27 48 DM_TFT28_116 = 116,
displaymodule 13:6ff2649b6c27 49 };
displaymodule 13:6ff2649b6c27 50
displaymodule 13:6ff2649b6c27 51 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 13:6ff2649b6c27 52 DmTpFt6x06(Display disp, bool useIrq=true);
displaymodule 13:6ff2649b6c27 53 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 13:6ff2649b6c27 54 DmTpFt6x06(Display disp, I2C &i2c, bool useIrq=true);
displaymodule 13:6ff2649b6c27 55 #endif
displaymodule 13:6ff2649b6c27 56 void init();
displaymodule 13:6ff2649b6c27 57 void readTouchData(uint16_t& posX, uint16_t& posY, bool& touching);
displaymodule 13:6ff2649b6c27 58 bool readTouchData(uint16_t& posX, uint16_t& posY);
displaymodule 13:6ff2649b6c27 59 bool isTouched();
displaymodule 13:6ff2649b6c27 60
displaymodule 13:6ff2649b6c27 61 private:
displaymodule 13:6ff2649b6c27 62 uint8_t readRegister8(uint8_t reg);
displaymodule 13:6ff2649b6c27 63 void writeRegister8(uint8_t reg, uint8_t val);
displaymodule 13:6ff2649b6c27 64 void enableIrq();
displaymodule 14:2db7065edbec 65 #if defined (DM_TOOLCHAIN_ARDUINO)
displaymodule 13:6ff2649b6c27 66 int8_t _irq;
displaymodule 13:6ff2649b6c27 67 regtype *_pinIrq;
displaymodule 13:6ff2649b6c27 68 regsize _bitmaskIrq;
displaymodule 13:6ff2649b6c27 69 #elif defined (DM_TOOLCHAIN_MBED)
displaymodule 14:2db7065edbec 70 PinName _irq;
displaymodule 13:6ff2649b6c27 71 long map(long x, long in_min, long in_max, long out_min, long out_max);
displaymodule 13:6ff2649b6c27 72 DigitalIn *_pinIrq;
displaymodule 13:6ff2649b6c27 73 I2C *_i2c;
displaymodule 13:6ff2649b6c27 74 #endif
displaymodule 13:6ff2649b6c27 75 };
displaymodule 13:6ff2649b6c27 76 #endif