JB16的USB口上电后,系统提示有新硬件,要求安装软件,但是是unkown device,应该是枚举没通过,中断程序interrupt 2 void isrUSB() 是参考codeworriar_example的JB8的,start08和prm等文件都是建立工程自动生成的,主程序也简单
void main(void)
{
int i;
DDRC=0xff;
initUSB();
cli();
for(;;) {
i=0;
__RESET_WATCHDOG();
}
}
跟踪中断程序,发现上电后根本没有运行,如果CONFIG中URSTD置位了,中断程序RSTF一段会运行,不知道是什么问题,是不是软件哪儿没设置啊 ,还是硬件有问题,各位老师指点一下
[此贴子已经被作者于2005-11-24 18:03:16编辑过]
interrupt 2 void isrUSB() {
if(UIR1 & BM_EOPF) {
SuspendCounter = 0;
UIR2 = BM_EOPFR;
}
else if(UIR1 & BM_RXD0F) {
LED2=0;
LED3=1;
if(USR0 & BM_SETUP)
handleSETUP();
else
handleOUT();
}
else if ...
我放了两个led的地方都还没执行到啊,还没到描述符啊,JB16如果接收到setup令牌,如果USBEN=1,RX0E=1,RXDOF=0,就应该自动接受数据并给RXD0F置位,在RXD01E=1的情况下产生中断,但是我这个中断就没产生过,怎么回事啊,难道开中断速度不匹配没接受到主机SETUP包?
[此贴子已经被作者于2005-11-25 20:12:09编辑过]
欢迎光临 电子技术论坛_中国专业的电子工程师学习交流社区-中电网技术论坛 (http://bbs.eccn.com/) | Powered by Discuz! 7.0.0 |