c++中的自定义事件/中断处理



在微控制器/嵌入式系统中是否存在与低级中断等效的通用编程?

我隐约熟悉事件(鼠标事件等)的概念,这似乎相似,但不够一般。是否有一种机制(本地或其他),特别是在C/c++中,来处理自定义事件,也就是说,事件的触发是由用户定义的条件决定的,比如,当鼠标指针移动到一个特定的区域,当一个特定的用户操作发生?

为了提供一些上下文,我正在研究一个基于OpenCV的交互式项目,当用户指向屏幕上的特定位置时,我想触发特定的动作。

在视频流的每次迭代中,检查指针是否当前在屏幕上的某某位置似乎是一种特别的计算浪费,我想根据预定义的条件自动调用函数。

或者是否有其他(更有效的)机制可以改进这个过程?

谢谢。

    在C/c++中没有像microP或microC那样的中断编程。
  1. 如果你的屏幕是触摸屏,那么你试图获得操作系统的SDK或操作系统的API,以便在触摸发生时获得通知。(操作系统内部维护一个中断表,用于触摸或按下键盘或移动鼠标。我们可以编写我们想要在这样一个事件上执行的逻辑,仅此而已。
  2. 如果它不是触摸,那么你必须用传感器监控用户的位置,通常是摄像头(网络摄像头)。为此,您必须检查相机的每一帧以确定用户的位置。编辑:
  3. 你说的是正确的方法。最好检查每一帧,否则系统的响应将会迟缓。你可以为1指定一个计数器,并在每一帧中增加它,并在达到任何期望的值时重置它。这几乎相当于无限循环。
  4. 或者你可以接受键盘上的一些键来打破循环(OpenCV有这样的功能)
  5. 一个更高级的方法是在不同的线程中从相机中抓取帧,而不是在执行程序的主线程中。所以你所需要做的就是启动和停止这个线程。

最新更新