1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
27
28
32
33
34
35
36
37
38
39
40
41
42
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
85
89
90
91
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
122
123
129
135
136
137
138
139
140
143
144
/* ... */
#include "k_bsp.h"
#include "k_calibration.h"
#include "GUI.h"
#include "DIALOG.h"
/* ... */
/* ... */
Includes
/* ... */
void k_BspInit(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
BSP_LED_Init(LED1);
BSP_LED_Init(LED2);
BSP_LED_Init(LED3);
BSP_LED_Init(LED4);
BSP_SRAM_Init();
BSP_TS_Init(320, 240);
__HAL_RCC_CRC_CLK_ENABLE();
__HAL_RCC_BKPSRAM_CLK_ENABLE();
GPIO_InitStructure.Mode = GPIO_MODE_AF_PP;
GPIO_InitStructure.Pull = GPIO_PULLUP;
GPIO_InitStructure.Speed = GPIO_SPEED_HIGH;
GPIO_InitStructure.Alternate = GPIO_AF12_FSMC;
GPIO_InitStructure.Pin = GPIO_PIN_10;
HAL_GPIO_Init(GPIOG, &GPIO_InitStructure);
}{ ... }
/* ... */
void k_BspAudioInit(void)
{
BSP_AUDIO_OUT_Init(OUTPUT_DEVICE_AUTO, AUDIO_DEFAULT_VOLUME, I2S_AUDIOFREQ_44K);
}{ ... }
/* ... */
void k_TouchUpdate(void)
{
GUI_PID_STATE TS_State;
static TS_StateTypeDef prev_state;
__IO TS_StateTypeDef ts;
uint16_t xDiff, yDiff;
BSP_TS_GetState((TS_StateTypeDef *)&ts);
TS_State.Pressed = ts.TouchDetected;
xDiff = (prev_state.x > ts.x) ? (prev_state.x - ts.x) : (ts.x - prev_state.x);
yDiff = (prev_state.y > ts.y) ? (prev_state.y - ts.y) : (ts.y - prev_state.y);
if((prev_state.TouchDetected != ts.TouchDetected )||
(xDiff > 3 )||
(yDiff > 3))
{
prev_state.TouchDetected = ts.TouchDetected;
if((ts.x != 0) && (ts.y != 0))
{
prev_state.x = ts.x;
prev_state.y = ts.y;
}if ((ts.x != 0) && (ts.y != 0)) { ... }
if(k_CalibrationIsDone())
{
TS_State.Layer = 0;
TS_State.x = k_CalibrationGetX (prev_state.x);
TS_State.y = k_CalibrationGetY (prev_state.y);
}if (k_CalibrationIsDone()) { ... }
else
{
TS_State.Layer = 0;
TS_State.x = prev_state.x;
TS_State.y = prev_state.y;
}else { ... }
GUI_TOUCH_StoreStateEx(&TS_State);
}if ((prev_state.TouchDetected != ts.TouchDetected )|| (xDiff > 3 )|| (yDiff > 3)) { ... }
}{ ... }
/* ... */
/* ... */