新闻中心

USB入门总结

作者: 时间:2012-04-18 来源:网络 收藏
ceronous status variable initialization
------------------------------------------------------------*/
usb_status.configuration = NULL;
usb_status.remote_wakeup = 0;
usb_status.address = 0;
usb_status.dvcstate = DEFAULT_STATE; /* Device state :DEFAULT */
usb_status.stall_req = 0;
#ifdef Debug
test[conters]='!';
conters++;
#endif

/*------------------------------------------------------------
Callback to application layer
------------------------------------------------------------*/
(*usb_status.callback)();
}
else if (SUSPENDED_INT())
{ /* suspended state */
/* forRev.1.1
Transit to suspended state after detect theline has kept idle over 3msec.
After resume detected, end suspend state in 3msec to be able to respond
the host request.
*/
CLR_SUSPENDED_STATE();
#ifdef Debug
test[conters]='@';
conters++;
#endif

}

else if (AWAKE_INT())
{ /* Deveice awake state */
/* AWAKE procedure */

CLR_AWAKE_STATE(); /* Request clear */
#ifdef Debug
test[conters]='#';
conters++;
#endif

}
else if (_BUSRESET_DES_INT())
{ /* USB bus reset deassert */
/* Procedure for USB bus reset de-assert */

CLR_BUS_RESET_DES_STATE(); /* Request clear */
#ifdef Debug
test[conters]='$';
conters++;
#endif

}

else if (SOF_INT())
{ /* SOF interrupt status */
CLR_B_SOF_STATE();
#ifdef Debug
test[conters]='%';
conters++;
#endif
/* SOF interrupt status clear */
} /* SOF interrupt status */

if (SETUP_RDY_INT())
{ /* setup ready */
#ifdef Debug
test[conters]='^';
conters++;
#endif

read_Device_Requests();
}

else if(EP1_PKTRDY_INT())
{ /* EP1 packet ready */
read_FIFO(EP1);
}
else if (EP2_PKTRDY_INT())
{ /* EP2 packet ready */

write_FIFO(EP2);
}

else if (EP0_RXPKTRDY_INT())
{ /* EP0 receive packet ready */
read_FIFO(EP0RX);
}
else if (EP0_TXPKTRDY_INT())
{ /* EP0 transmit packet ready */
write_FIFO(EP0TX);
}

}
计录的结果在变量查看中显示如下:

首先我解释一下,这段程序是我在做USB设备时的中断函数。主



关键词:USB入门总结

评论


相关推荐

技术专区

关闭