使用avr m16+d12 现在,读芯片id正常,读写dma寄存器正常,avr本身中断,串口,端口等程序都正常 但是为什么要过大概10秒甚至更久才出现未知设备呢?看其他东西插到usb里很快就有反映的, int main() { uint chapid uint test;
_delay_ms(3);//延时稳定 io_init(); //端口初始化 time_init(); //定时初始化 chk_init(); //串口初始化 mzd_init(); //中断初始化 mzd_on(); //开总中断 send_str("ok"); //avr正常 usb_init(); //usb初始化 usb_connect(); //usb连接 chapid = usb_readchap(); //读芯片id应该返回1012 chapid = usb_readchap(); //要读两次 if(chapid==0x1012) send_str(“good”); //d12正常
while ( 1 ) //停下来查看 ~~~~~~~~~~~~~~~~~~~~ }
SIGNAL( SIG_INTERRUPT0 ) //INT0中断服务程序 测试通过 {//硬件自动清除INTF0标志位 send_str("zd"); //发送字符 led1_on(); //亮灯 //isr(); //调用处理 } 串口:zd,ok,good,zd,zd,zd,zd,zd,zd,zd,zd, 第一个是复位中断,其他的是请求中断 发现刚接上usb就发送zd,为什么 查看是发生总线复位中断 应该在上拉之后才发生吧,为什么zd在ok之前呢。
|