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