您现在的位置: 精品资料网 >> 管理信息化 >> 信息化知识 >> 资料信息

教你为任何系统增加USB(doc 11页)

所属分类:
信息化知识
文件大小:
284 KB
下载地址:
相关资料:
系统,增加,usb
教你为任何系统增加USB(doc 11页)内容简介
中断端点有查询间隔,它决定了USB主设备隔多久向IN端点要数据。每隔一段时间我们可以预计到主控制器发了一个IN请求给我们的设备端点3。图7显示了处理这些请求的一个简单的状态机。只要设备被例举了,处理器重复地执行这一过程。为了简单起见,该应用程序查询中断脚是否有效,当然,如果你还有其他事要微控制器处理,你会用中断来激活Do_IN3函数。状态机使用了两个全局变量:state和button。C宏定义了三个状态:IDLE, RELEASE和 WAIT 。状态变量初始化为IDLE。如果连在MAX3420E的GPIN0上的按键按下,变量button是高,否则为低。Main()中的无穷循环增加一个按键检查定时器,当定时器到时它会读一下MAX3420E中的GPIO寄存器来决定按键状态。此方法省掉了不必要的SPI流量。当按键处于弹起状态时,状态图转到左边的两个分支,不做任何事。如果按键在IDLE状态被按下,就发一个清除桌面上活动窗口的键码。键码次序是08 (windows键) 00 (保留)和07 (字母d)。下一个状态转到RELEASE,这样就完成了。只要MAX3420E把数据包送到USB,它就产生另一个EP3-IN中断请求来表示EP3-IN FIFO可以再一次装载数据。然后再次进入图7函数,此时状态state = RELEASE ,因此函数发送序列00 00 00来表示“按键弹起”,下一个状态进入WAIT,意思是“等待按键被释放”。现在函数要做的所有工作是利用WAIT状态分支程序来检测按键释放。如果按键一直按着,程序不做任何事,当按键一被释放,状态图就进到右边的两个分支,重新初始化state 变量为IDLE,使函数等候下一个按键按下。
..............................