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; }
时间: 2024-02-10 07:08:44 浏览: 61
这段代码定义了一个名为touch_task的函数,函数的参数为void*类型,返回值也是void*类型。
函数的主要功能是获取触摸屏输入的坐标,根据坐标来判断用户选择的是哪个模块。具体来说,函数通过调用get_xy_slid函数获取坐标值,并根据坐标值判断用户选择的模块。如果用户选择了某个模块,函数会将button变量设置为相应的值并使用break语句跳出循环,然后返回0。
需要注意的是,在函数中使用了while(1)的无限循环,因此函数会一直运行直到用户选择了某个模块并跳出循环。此外,函数中的条件判断语句中使用了&符号,应该使用&&符号来代替。
相关问题
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; } }
这段代码是一个用于处理触摸屏事件的线程函数。函数名为 touch_task,参数为 void 类型指针 arg。该函数通过调用 get_xy_slid 函数获取当前触摸屏上手指的位置坐标,然后根据坐标判断用户点击的位置,并将相应的按钮编号赋值给变量 button。需要注意的是,这段代码中使用了多个 if 语句,分别对应不同的按钮位置,因此当用户点击触摸屏时,只有一个按钮的编号会被赋值给 button 变量。此外,该函数是一个死循环,会一直运行,直到手动停止线程或程序结束。
阅读全文