阅读:1435回复:6
关于读中断寄存器的一个小问题
我读中断寄存器,读出了个03H..非常不解...01H是CONTROL OUT
02H是CONTROL IN 可是03H是什么啊??既进又出???怎么处理阿 |
|
沙发#
发布于:2002-12-10 14:46
我这SL811HS主方式同你的不一样,帮不上。
|
|
板凳#
发布于:2002-12-10 17:18
快下班了.自己先顶一顶....
|
|
地板#
发布于:2002-12-11 11:43
应该是按照你固件里的执行顺序执行吧,如果是先执行OUT,那做完后再执行IN,如果你的中断里不是用switch做的话,同时出现是有可能的。
|
|
地下室#
发布于:2002-12-11 11:48
如果你的中断里不是用switch做的话,同时出现是有可能的。 怎么用?? |
|
5楼#
发布于:2002-12-12 09:04
自己顶
|
|
6楼#
发布于:2002-12-12 13:34
我看过的例子里是用if语句来实现的,比如说isr_ep0out=01h,isr_ep0in=02h你从中断寄存器中读出来的值放在intreg里面,那你可以这样判断:
if(intreg & isr_ep0out) {isr_ep0rxdone()} if(intreg & isr_ep0in) {isr_ep0txdone()} 这样的话就可以按顺序执行了,我也不清楚这是不是为了考虑中断优先级的原因,但是同时有几个中断位置位的情况很可能会存在的,尤其是2.0的情况。 以上仅做参考,因为我还没有开始调试,具体行不行我也不知道。 |
|