新闻中心

EEPW首页 > 模拟技术 > 设计应用 > USB入门总结

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 */
/* for Rev.1.1
Transit to suspended state after detect the line 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 入门总结

评论


相关推荐

技术专区

关闭