48 static const uint8_t
ledports[] = {4, 7, 7, 7};
49 static const uint8_t
ledbits[] = {1, 5, 6, 8};
52 #define TSC2046_CONVERSION_BITS 12
53 #define TSC_START (0x01 << 7)
54 #define TSC_CHANNEL_X (0x05 << 4)
55 #define TSC_CHANNEL_Y (0x01 << 4)
56 #define TSC_CHANNEL_Z1 (0x03 << 4)
57 #define TSC_CHANNEL_Z2 (0x04 << 4)
58 #define TSC_8BIT (0x01 << 3)
59 #define TSC_12BIT (0x00 << 3)
61 #define TSC_ADC_ON 0x01
62 #define TSC_REF_ON 0x02
63 #if (TSC2046_CONVERSION_BITS == 12)
64 #define TSC_CONVERSION_MODE TSC_12BIT
66 #define TSC_CONVERSION_MODE TSC_8BIT
69 #define TSC_SER_MODE (0x01 << 2)
70 #define TSC_DFR_MODE (0x00 << 2)
72 #define X_MEASURE (TSC_START | TSC_CHANNEL_X | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
73 #define Y_MEASURE (TSC_START | TSC_CHANNEL_Y | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
74 #define Z1_MEASURE (TSC_START | TSC_CHANNEL_Z1 | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
75 #define Z2_MEASURE (TSC_START | TSC_CHANNEL_Z2 | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
76 #define PWRDOWN (TSC_START | TSC_CHANNEL_Y | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_PD)
88 #define LCD_DC_CMD (Chip_GPIO_WritePortBit(LPC_GPIO_PORT, 0x07, 8, false))
89 #define LCD_DC_DATA (Chip_GPIO_WritePortBit(LPC_GPIO_PORT, 0x07, 8, true))
91 #if (TSC2046_CONVERSION_BITS == 12)
92 #define TSC2046_COORD_MAX (0xFFF)
93 #define TSC2046_DELTA_VARIANCE (0x50)
95 #define TSC2046_COORD_MAX (0xFF)
96 #define TSC2046_DELTA_VARIANCE (0x03)
98 #define COORD_GET_NUM (10)
102 3758, 149, 3914, 163, 240, 320, 1
140 for (i = 0; i < 100 * ms; i++) {}
178 buf[1] = (addr & 0xff);
183 buf[0] = (data >> 8);
184 buf[1] = (data & 0xff);
254 uint8_t rx_data[2], tx_data[1] = {0x00};
265 #if (TSC2046_CONVERSION_BITS == 8)
266 *data = (((rx_data[0] << 8) | (rx_data[1])) >> 7) & 0xFF;
268 *data = (((rx_data[0] << 8) | rx_data[1]) >> 3) & 0xFFF;
277 uint16_t Tmp = 0, previousTmp;
287 diff = Tmp - previousTmp;
302 static int16_t
calibrateTSC2046(int16_t Coord, int16_t MinVal, int16_t MaxVal, int16_t TrueSize)
309 if (MinVal > MaxVal) {
316 ret = (Coord - MinVal) * TrueSize / (MaxVal - MinVal);
318 ret = TrueSize - ret;
378 #if defined(DEBUG_UART)
393 #if defined(DEBUG_UART)
401 #if defined(DEBUG_UART)
414 #if defined(DEBUG_UART)
415 while (*str !=
'\0') {
438 if (LEDNumber == 0) {
455 if (LEDNumber == 0) {
506 const uint8_t boardmac[] = {0x00, 0x60, 0x37, 0x12, 0x34, 0x56};
508 memcpy(mcaddr, boardmac, 6);
626 uint16_t x, y, z1, z2, z = 0;
635 z = x * ((z2 / z1) - 1);
637 if ((z <= 0) || (z > 35000)) {
662 z = x * ((z2 / z1) - 1);
663 if ((z <= 0) || (z > 35000)) {
685 bool OnOff = (bool) (Intensity != 0);