发表于:2002-06-10 15:03:00
4楼
假如说SendMessage(port,...)是发送函数
ReceiveMessage(port,...)是接受函数
现在port1,为发送端口
port2为接受端口
那么在
1)查询方式编程时就是
......(初始化,配置,..)
SendMessage(port1,...);
ReceiveMessage(port2,...);
.....
2)在中断方式就是
SendMessage(port1,...);
@@ if(ReceIntFlag==1)// 中断接受标志
{
pc从port2的接受缓冲器中读取数据;
pc 处理数据
}
那问题是如何让ReceIntFlag=1,它是只读的,如果是由中断完成这部分工作,那么中断程序就是这样如下吗?
IntProgram()//中断程序
{
ReceiveMessage(port2,...);
}
那么在port2接受完数据后,ReceIntFlag就会等与1,此时在转入前面的 @@处吗?
那此时如何知道中断来了呢?
我目前查询方式已经调通,可是中断方式没有调通,我对其流程没有明白!当port1发送信息后,端口2的pc如何知道由中断来?
我在c++builder下编程序,我用的控件是TVicHW32,它可以对硬件操作
因为PC一般把 中断(IRQ1---15)屏蔽,它首先是把所选中的中断号(port2的中断,假如是IRQ15)不屏蔽,并且选中响应的中断号(IRQ15),还有一个中断函数,表示有中断发生,问题是接受端的pc如何知道中断来了?
另外,我说pc的中断号也是IRQ1---15 像键盘对应的中断号是IRQ1,软盘是IRQ6,com1是IRQ3,com2是IRQ4,LPT是IRQ7那么他们和can的这些中断不会冲突吧?他们的关系是什么?
谢谢你-----工控之新手,我是最新的新手!