阅读:1558回复:6
求助:关于d12端点输入中断程序的疑问
在周立功的那本d12书中和源代码中都提到d12的端点1和2的输入中断是在发送完数据后才产生的,中断程序只要读取端点号的最后状态寄存器来清除中断寄存器的相应位,并把状态清零即可。USBCHIP_ReadLastTransactionStatus(3);
那么输入的数据是GenBuf[]或EpBuf[]中的数据吗?如果GenBuf[]或EpBuf[]中的数据为零,是否不产生中断呢? |
|
沙发#
发布于:2004-11-21 16:12
实际上是你调用了D12_WriteEndpoint(endp,len,buf),在主机下一个in包来的时候,主机取走数据,它才进入EP1IN中断服务子程序的。至于什么时候调用D12_WriteEndpoint(endp,len,buf),你想传数据给主机的时候,你就得调用它了 同意!不过我是菜鸟,没有发言权 |
|
板凳#
发布于:2004-11-20 15:59
实际上是你调用了D12_WriteEndpoint(endp,len,buf),在主机下一个in包来的时候,主机取走数据,它才进入EP1IN中断服务子程序的。至于什么时候调用D12_WriteEndpoint(endp,len,buf),你想传数据给主机的时候,你就得调用它了
[编辑 - 11/20/04 by frades] |
|
地板#
发布于:2004-11-20 15:53
[编辑 - 11/20/04 by frades] |
|
地下室#
发布于:2004-11-20 15:51
可是在d12固件程序中端点1的IN中断处理程序中只有:
void ep1_txdone(void) { D12_ReadLastTransactionStatus(3); } 什么时候调用的D12_WriteEndpoint(endp,len,buf)呢? |
|
5楼#
发布于:2004-11-20 15:41
我的理解是:当你调用D12_WriteEndpoint(endp,len,buf)时,D12将数据写入端点,在主机下一个in包来的时候自动将其送出,送出同时产生中断。
不知我的理解是否正确,还请大侠们指正。 |
|
6楼#
发布于:2004-11-20 11:50
怎么没人回呀,难道我的问题太弱?
|
|