LA: Adding some "Ex" features to DmTftBase
DmTpFt6x06.h@13:6ff2649b6c27, 2015-09-18 (annotated)
- Committer:
- displaymodule
- Date:
- Fri Sep 18 14:59:13 2015 +0000
- Revision:
- 13:6ff2649b6c27
- Child:
- 14:2db7065edbec
add DM-TFT28-116: DmTpFt6x06.cpp / h
Who changed what in which revision?
User | Revision | Line number | New 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 | 13:6ff2649b6c27 | 65 | int8_t _irq; |
displaymodule | 13:6ff2649b6c27 | 66 | #if defined (DM_TOOLCHAIN_ARDUINO) |
displaymodule | 13:6ff2649b6c27 | 67 | regtype *_pinIrq; |
displaymodule | 13:6ff2649b6c27 | 68 | regsize _bitmaskIrq; |
displaymodule | 13:6ff2649b6c27 | 69 | #elif defined (DM_TOOLCHAIN_MBED) |
displaymodule | 13:6ff2649b6c27 | 70 | long map(long x, long in_min, long in_max, long out_min, long out_max); |
displaymodule | 13:6ff2649b6c27 | 71 | DigitalIn *_pinIrq; |
displaymodule | 13:6ff2649b6c27 | 72 | I2C *_i2c; |
displaymodule | 13:6ff2649b6c27 | 73 | #endif |
displaymodule | 13:6ff2649b6c27 | 74 | }; |
displaymodule | 13:6ff2649b6c27 | 75 | #endif |
displaymodule | 13:6ff2649b6c27 | 76 |