1 #include "qe_touch_config.h"
2 #include <rtthread.h>
3 #include <rtdevice.h>
4 #define TOUCH_SCAN_INTERVAL_EXAMPLE (20) /* milliseconds */
5
6 uint64_t button_status;
7 #if (TOUCH_CFG_NUM_SLIDERS != 0)
8 uint16_t slider_position[TOUCH_CFG_NUM_SLIDERS];
9 #endif
10 #if (TOUCH_CFG_NUM_WHEELS != 0)
11 uint16_t wheel_position[TOUCH_CFG_NUM_WHEELS];
12 #endif
13
qe_touch_main(void * parameter)14 void qe_touch_main(void *parameter)
15 {
16 fsp_err_t err;
17 rt_uint32_t led_blu = rt_pin_get("P501");
18
19 /* Open Touch middleware */
20 rt_kprintf("TOUCH Open\n");
21 err = RM_TOUCH_Open(g_qe_touch_instance_config01.p_ctrl, g_qe_touch_instance_config01.p_cfg);
22 if (FSP_SUCCESS != err)
23 {
24 rt_kprintf("RM_TOUCH_Open fail\n");
25 return;
26 }
27
28 rt_kprintf("TOUCH ScanStart\n");
29 /* Main loop */
30 while (true)
31 {
32 /* for [CONFIG01] configuration */
33 err = RM_TOUCH_ScanStart(g_qe_touch_instance_config01.p_ctrl);
34 if (FSP_SUCCESS != err)
35 {
36 rt_kprintf("RM_TOUCH_Open fail\n");
37 return;
38 }
39 while (0 == g_qe_touch_flag) {}
40 g_qe_touch_flag = 0;
41
42 err = RM_TOUCH_DataGet(g_qe_touch_instance_config01.p_ctrl, &button_status, NULL, NULL);
43 if (FSP_SUCCESS == err)
44 {
45 if (button_status)
46 {
47 rt_pin_write(led_blu, PIN_HIGH);
48 }
49 else
50 {
51 rt_pin_write(led_blu, PIN_LOW);
52 }
53 }
54
55 /* FIXME: Since this is a temporary process, so re-create a waiting process yourself. */
56 rt_thread_mdelay(TOUCH_SCAN_INTERVAL_EXAMPLE);
57 }
58 }
59
touch_init(void)60 int touch_init(void)
61 {
62 rt_thread_t tid = rt_thread_create("touch", qe_touch_main, RT_NULL, 512, 10, 50);
63 if (tid)
64 {
65 rt_thread_startup(tid);
66 }
67 return 0;
68 }
69 INIT_APP_EXPORT(touch_init);
70 //MSH_CMD_EXPORT(touch_init, touch_init);
71