48 static const uint8_t
ledports[] = {4, 7, 7, 7};
49 static const uint8_t
ledbits[] = {1, 5, 6, 8};
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 DC_CMD (Chip_GPIO_WritePortBit(0x07, 8, false))
88 #define DC_DATA (Chip_GPIO_WritePortBit(0x07, 8, true))
90 #define TSC2046_CONVERSION_BITS 12
92 #if (TSC2046_CONVERSION_BITS == 12)
93 #define TSC2046_COORD_MAX (0xFFF)
94 #define TSC2046_DELTA_VARIANCE (0x50)
96 #define TSC2046_COORD_MAX (0xFF)
97 #define TSC2046_DELTA_VARIANCE (0x03)
99 #define COORD_GET_NUM (10)
103 3686, 205, 3842, 267, 240, 320, 1
148 #define UDA1380_REG_EVALCLK_DEFAULT_VALUE (0xF << 8 | 0x3 << 4 | 1 << 1)
149 #define UDA1380_REG_I2S_DEFAULT_VALUE 0x0000
151 #define UDA1380_REG_PWRCTRL_DEFAULT_VALUE (1 << 15 | 1 << 13 | 1 << 10 | 1 << 8 | 1 << 6 | 1 << 4 | 0x0F)
152 #define UDA1380_REG_ANAMIX_DEFAULT_VALUE 0x0000
153 #define UDA1380_REG_HEADAMP_DEFAULT_VALUE ( 1 << 9 | 2)
155 #define UDA1380_REG_MSTRVOL_DEFAULT_VALUE 0x0000
156 #define UDA1380_REG_MIXVOL_DEFAULT_VALUE 0x0000
157 #define UDA1380_REG_MODEBBT_DEFAULT_VALUE 0x0000
158 #define UDA1380_REG_MSTRMUTE_DEFAULT_VALUE (2 << 8 | 2)
159 #define UDA1380_REG_MIXSDO_DEFAULT_VALUE 0x0000
161 #define UDA1380_REG_DECVOL_DEFAULT_VALUE 0xE4E4
162 #define UDA1380_REG_PGA_DEFAULT_VALUE 0x0000
163 #define UDA1380_REG_ADC_DEFAULT_VALUE 0x0001
164 #define UDA1380_REG_AGC_DEFAULT_VALUE 0x0000
166 #define UDA1380_REG_L3_DEFAULT_VALUE 0x0000
205 for (i = 0; i < 100 * ms; i++) {}
243 buf[1] = (addr & 0xff);
248 buf[0] = (data >> 8);
249 buf[1] = (data & 0xff);
320 uint8_t rx_data[2], tx_data[1] = {0x00};
322 tx_data[0] = command;
328 for (tmp = 0x100; tmp; tmp--) {}
333 for (tmp = 0x100; tmp; tmp--) {}
335 #if (TSC2046_CONVERSION_BITS == 8)
336 *data = (((rx_data[0] << 8) | (rx_data[1])) >> 7) & 0xFF;
338 *data = (((rx_data[0] << 8) | rx_data[1]) >> 3) & 0xFFF;
347 uint16_t Tmp = 0, previousTmp;
357 diff = Tmp - previousTmp;
372 static int16_t
TSCCalibrate(int16_t Coord, int16_t MinVal, int16_t MaxVal, int16_t TrueSize)
379 if (MinVal > MaxVal) {
386 ret = (Coord - MinVal) * TrueSize / (MaxVal - MinVal);
388 ret = TrueSize - ret;
402 I2C_Config->
tx_data[1] = value >> 8;
403 I2C_Config->
tx_data[2] = value & 0xFF;
412 return rx_data[0] << 8 | rx_data[1];
429 for (i = 0; i < 5; i++) {
438 for (i = 0; i < 5; i++) {
446 for (i = 0; i < 4; i++) {
503 #if defined(DEBUG_UART)
518 #if defined(DEBUG_UART)
526 #if defined(DEBUG_UART)
539 #if defined(DEBUG_UART)
540 while (*str !=
'\0') {
563 if (LEDNumber == 0) {
580 if (LEDNumber == 0) {
631 const uint8_t boardmac[] = {0x00, 0x60, 0x37, 0x12, 0x34, 0x56};
633 memcpy(mcaddr, boardmac, 6);
745 uint16_t x, y, z1, z2, z = 0;
754 z = x * ((z2 / z1) - 1);
756 if ((z <= 0) || (z > 35000)) {
781 z = x * ((z2 / z1) - 1);
782 if ((z <= 0) || (z > 35000)) {
804 bool OnOff = (bool) (Intensity != 0);
865 uint8_t uda1380_tx_data_buf[3];
871 I2C_Config.
tx_data = uda1380_tx_data_buf;