void *touch_task(void *arg) //选择模块(改坐标) { while (1) { int x = 0, y = 0; slid = get_xy_slid(&x, &y); // 判断点击的位置 if (x > 117 & y > 128 && x < 234 & y < 230)//相册1 { button = 1; } if (x > 530 & y > 129 && x < 661 & y < 280)//音乐2 { button = 2; } if (x >327 & y > 128 && x < 452 & y < 276)//视频3 { button = 3; } if (x > 290 & y > 30 && x < 453 & y < 80)//团队信息4 { button = 4; } if (x > 125 & y > 350 && x < 225 & y < 450)//摄像头5 { button = 5; } if (x > 325 & y > 350 && x < 425 & y < 450)//语音控制6 { button = 6; } if (x > 525 & y > 350 && x < 625 & y < 450)//录音7 { button = 7; } return 0; } }
时间: 2024-02-10 22:08:47 浏览: 24
这段代码是一个用于处理触摸屏事件的线程函数。函数名为 touch_task,参数为 void 类型指针 arg。该函数通过调用 get_xy_slid 函数获取当前触摸屏上手指的位置坐标,然后根据坐标判断用户点击的位置,并将相应的按钮编号赋值给变量 button。需要注意的是,这段代码中使用了多个 if 语句,分别对应不同的按钮位置,因此当用户点击触摸屏时,只有一个按钮的编号会被赋值给 button 变量。此外,该函数是一个死循环,会一直运行,直到手动停止线程或程序结束。
相关问题
typedef void (*os_task_ptr)(void *p_arg);的typedef怎么就变成函数指针了
在C语言中,`typedef`关键字可以用来定义类型别名。在这个语句中,`os_task_ptr`被定义为一个函数指针类型的别名。具体来说,`os_task_ptr`被定义为一个参数为`void*`类型,返回值为`void`类型的函数指针。因此,我们可以将函数指针变量赋值给`os_task_ptr`类型的变量,使其指向相应的函数。例如:
```c
void my_task(void *arg) {
// do something
}
os_task_ptr task_func = my_task;
```
这里,`task_func`就是一个`os_task_ptr`类型的变量,它指向`my_task`函数。当我们调用`task_func`时,实际上就是调用`my_task`函数。
void *touch_task(void *arg) //选择模块(改坐标) { button = 0; while (1) { int x = 0, y = 0; slid = get_xy_slid(&x, &y); // 判断点击的位置 if (x > 117 & y > 128 && x < 234 & y < 230)//相册1 { button = 1; break; } if (x > 530 & y > 129 && x < 661 & y < 280)//音乐2 { button = 2; break; } if (x >327 & y > 128 && x < 452 & y < 276)//视频3 { button = 3; break; } if (x > 290 & y > 30 && x < 453 & y < 80)//团队信息4 { button = 4; break; } if (x > 125 & y > 350 && x < 225 & y < 450)//摄像头5 { button = 5; break; } if (x > 325 & y > 350 && x < 425 & y < 450)//语音控制6 { button = 6; break; } if (x > 525 & y > 350 && x < 625 & y < 450)//录音7 { button = 7; break; } return 0; }
这段代码定义了一个名为touch_task的函数,函数的参数为void*类型,返回值也是void*类型。
函数的主要功能是获取触摸屏输入的坐标,根据坐标来判断用户选择的是哪个模块。具体来说,函数通过调用get_xy_slid函数获取坐标值,并根据坐标值判断用户选择的模块。如果用户选择了某个模块,函数会将button变量设置为相应的值并使用break语句跳出循环,然后返回0。
需要注意的是,在函数中使用了while(1)的无限循环,因此函数会一直运行直到用户选择了某个模块并跳出循环。此外,函数中的条件判断语句中使用了&符号,应该使用&&符号来代替。