![](/img/trans.png)
[英]How would one go about generating “artificial” interrupts in the Linux Kernel?
[英]About interrupts?
我正在编写一个基本的交通信号灯控件,它将显示在监视器上。
在这种情况下,我需要发生外部中断(事件)并更改当前交通信号灯的状态。 我正在尝试不使用任何板子或外部外围设备的情况。
现在我认为我有以下选择。 告诉我哪个是最好的。
1.要在系统上安装一个中断功能,它将定期发出中断? (但我不知道该如何安装...任何机构请帮助我)
2.在第二台PC或超级终端上运行的AC程序,该程序会定期向运行交通信号灯程序的PC串行端口发送一些不同的值,该PC串行端口会定期检查该值,并且对于一组数据,它将更改为一个值状态和另一组数据的另一状态。 因此,这两个程序将在各自的系统上同时运行。
3.否则我应该去外部中断发生器吗?
在以上方法中,这是最好的方法。 否则还有其他更简单的替代方案,并且不包括外部硬件。如果以上任何解决方案都不正确,请忽略它们。.我的环境是Windows上的turboC。(我也邀请了bcc回答gcc在Windows上为ARM7安装了gcc的TRITON IDE)
您可以只创建一个多线程应用程序,并在唤醒时使某些中断像中断一样。
线程一:交通控制线程二:模拟从东部进来的交通并请求更改灯光,并在1至60秒内随机睡眠,然后再次唤醒。 线程X发挥想象力。
在gcc中,如果您有一个示例的pthread lib,则可以轻松完成。
获取Microsoft®Win32®Programmer的参考帮助文件的副本: Win32.hlp
寻求SetTimer和相关功能。 此函数在希望在特定时间间隔(从调用setTimer的那一刻起)之后调用函数的窗口上注册。 我的建议是,在该功能上,您:-杀死该计时器,并设置另一个与此计时器相同的计时器(即,相同的间隔,相同的功能); -增加计数器; -针对常数测试计数器;
即计数器= 10,变黄色,= 20,变绿色,= 30变红色,并重置计数器。
如果想法是让交通信号灯对其他事物做出反应,则将计数器逻辑替换为“其他事物”。
程序的main()只是定时器初始化和while(1)。 其余的由计时器调用的函数完成。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.