47 static const uint8_t
ledports[] = {4, 7, 7, 7};
48 static const uint8_t
ledbits[] = {1, 5, 6, 8};
51 #define TSC2046_CONVERSION_BITS 12
52 #define TSC_START (0x01 << 7)
53 #define TSC_CHANNEL_X (0x05 << 4)
54 #define TSC_CHANNEL_Y (0x01 << 4)
55 #define TSC_CHANNEL_Z1 (0x03 << 4)
56 #define TSC_CHANNEL_Z2 (0x04 << 4)
57 #define TSC_8BIT (0x01 << 3)
58 #define TSC_12BIT (0x00 << 3)
60 #define TSC_ADC_ON 0x01
61 #define TSC_REF_ON 0x02
62 #if (TSC2046_CONVERSION_BITS == 12)
63 #define TSC_CONVERSION_MODE TSC_12BIT
65 #define TSC_CONVERSION_MODE TSC_8BIT
68 #define TSC_SER_MODE (0x01 << 2)
69 #define TSC_DFR_MODE (0x00 << 2)
71 #define X_MEASURE (TSC_START | TSC_CHANNEL_X | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
72 #define Y_MEASURE (TSC_START | TSC_CHANNEL_Y | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
73 #define Z1_MEASURE (TSC_START | TSC_CHANNEL_Z1 | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
74 #define Z2_MEASURE (TSC_START | TSC_CHANNEL_Z2 | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_ADC_ON)
75 #define PWRDOWN (TSC_START | TSC_CHANNEL_Y | TSC_CONVERSION_MODE | TSC_DFR_MODE | TSC_PD)
87 #define LCD_DC_CMD (Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0x07, 8, false))
88 #define LCD_DC_DATA (Chip_GPIO_SetPinState(LPC_GPIO_PORT, 0x07, 8, true))
90 #if (TSC2046_CONVERSION_BITS == 12)
91 #define TSC2046_COORD_MAX (0xFFF)
92 #define TSC2046_DELTA_VARIANCE (0x50)
94 #define TSC2046_COORD_MAX (0xFF)
95 #define TSC2046_DELTA_VARIANCE (0x03)
97 #define COORD_GET_NUM (10)
101 3758, 149, 3914, 163, 240, 320, 1
143 for (i = 0; i < 100 * ms; i++) {}
181 buf[1] = (addr & 0xff);
186 buf[0] = (data >> 8);
187 buf[1] = (data & 0xff);
257 uint8_t rx_data[2], tx_data[1] = {0x00};
259 tx_data[0] = command;
268 #if (TSC2046_CONVERSION_BITS == 8)
269 *data = (((rx_data[0] << 8) | (rx_data[1])) >> 7) & 0xFF;
271 *data = (((rx_data[0] << 8) | rx_data[1]) >> 3) & 0xFFF;
280 uint16_t Tmp = 0, previousTmp;
290 diff = Tmp - previousTmp;
305 static int16_t
calibrateTSC2046(int16_t Coord, int16_t MinVal, int16_t MaxVal, int16_t TrueSize)
312 if (MinVal > MaxVal) {
319 ret = (Coord - MinVal) * TrueSize / (MaxVal - MinVal);
321 ret = TrueSize - ret;
381 #if defined(DEBUG_UART)
396 #if defined(DEBUG_UART)
406 #if defined(DEBUG_UART)
417 #if defined(DEBUG_UART)
418 while (*str !=
'\0') {
441 if (LEDNumber == 0) {
458 if (LEDNumber == 0) {
501 const uint8_t boardmac[] = {0x00, 0x60, 0x37, 0x12, 0x34, 0x56};
503 memcpy(mcaddr, boardmac, 6);
526 #if defined(USE_RMII)
624 uint16_t x, y, z1, z2, z = 0;
633 z = x * ((z2 / z1) - 1);
635 if ((z <= 0) || (z > 35000)) {
660 z = x * ((z2 / z1) - 1);
661 if ((z <= 0) || (z > 35000)) {
683 bool OnOff = (bool) (Intensity != 0);