C 关于中断?

C 关于中断?,c,events,C,Events,我正在对显示器上显示的基本交通灯控制进行编码。 在这种情况下,我需要一个外部中断(事件)来发生并改变当前交通灯的状态。我试图做到这一点,没有任何董事会或外部外围设备。 现在我想我有以下选择。告诉我哪一个是最好的。 一,。在系统上安装一个中断功能,定期进行中断?(但我不知道如何安装……请任何人帮我安装) 二,。在第二台PC或超级终端上运行的一个C程序,它将定期向运行红绿灯程序的my PC串行端口发送一些不同的值,并延迟发送。该程序将定期检查该值,对于一组数据,它将更改为一种状态,对于另一组数据,它

我正在对显示器上显示的基本交通灯控制进行编码。 在这种情况下,我需要一个外部中断(事件)来发生并改变当前交通灯的状态。我试图做到这一点,没有任何董事会或外部外围设备。 现在我想我有以下选择。告诉我哪一个是最好的。 一,。在系统上安装一个中断功能,定期进行中断?(但我不知道如何安装……请任何人帮我安装) 二,。在第二台PC或超级终端上运行的一个C程序,它将定期向运行红绿灯程序的my PC串行端口发送一些不同的值,并延迟发送。该程序将定期检查该值,对于一组数据,它将更改为一种状态,对于另一组数据,它将更改为另一种状态。因此,这两个程序将在各自的系统上同时运行。 3.否则我应该使用外部中断发生器吗? 在上述方法中,哪一种是最好的方法。或者是否有其他更简单且不包括外部硬件的替代方案。如果上述任何解决方案不正确,请忽略它们。。
我的环境是windows上的turbo C。(gcc上的答案也被邀请bcos我在windows上为ARM7安装了带有gcc的TRITON IDE)

选项1是最简单的,您只需创建一个定时器,它将定期中断您的程序。你说你是用C语言编程的,但是没有指定平台,定时器是依赖于平台的

在Unixland中,计时器在完成时向进程发送信号。具体来说,Linux的计时器实现是

然后,您必须捕获并处理计时器发送的数据


在Win32 API中,您也可以使用,但概念有所不同。

您可以创建一个多线程应用程序,并在他们醒来时让一些踏板像中断一样工作

线程一: 交通管制 线程二: 模拟从东部接近的车辆,请求改变照明,并在再次醒来前随机睡眠1到60秒。 线程X使用想象力


在gcc中,以pthread库为例,这一点很容易做到。

获取Microsoft®Win32®程序员参考的副本。帮助文件:Win32.hlp

Seek设置定时器和相关功能。 此函数在windows上注册,您希望在特定时间间隔后调用函数(从调用setTimer开始)。 我的建议是,在该功能上,您: -关闭此计时器,并设置另一个与之相同的计时器(即,相同的间隔,相同的功能); -增加一个计数器; -根据常数测试计数器

即计数器=10,变为黄色,=20,变为绿色,=30,变为红色,并重置计数器

如果想法是让交通信号灯对其他东西做出反应,那么用“其他东西”代替反逻辑


程序的main()只是计时器初始化和一段时间(1)。其余部分由名为函数的计时器完成。

欢迎使用任何示例代码。