我用的AVR mega128 用本論壇51單片機(jī)那個程序改編的 但是插上鍵盤過后 中斷引腳始終是高 接收不到任何東西 不知道問題出在哪里? 請高手幫忙啊 在線等.... 做了好幾天了 還沒搞定 我的程序如下UploadImages/2010111820541561.txtUploadImages/201011239263668.txt
我重新將我的程序發(fā)上來了 我不太清楚怎么樣才算初始化完成
出錯的開始是從獲取設(shè)備描述符的數(shù)據(jù)階段的中斷狀態(tài)值 返回為0x2e 本來應(yīng)該為0X14才能 unsigned char get_descr_ex() { unsigned char descr_len; unsigned char *p=data_buf; endp7_mode=0x80; toggle_send(); wr_usb_data(8,Request.Req_buf); issue_token(( 0 << 4 ) | DEF_USB_PID_SETUP); status=wait_interrupt();//printf("SETUP USB_INT_SUCCESS\n");
//此處獲取到的狀態(tài)值為2e 所以下面不能執(zhí)行
if(status==USB_INT_SUCCESS)/* SETUP階段操作成功 */ { endp6_mode=0xc0; toggle_recv(); printf("SETUP USB_INT_SUCCESS\n"); } else {return(0);//printf("SETUP USB_INT_fail\n"); } issue_token(( 0 << 4 ) | DEF_USB_PID_IN);status=wait_interrupt(); if(status==USB_INT_SUCCESS)/* DATA階段操作成功 */ { printf("data USB_INT_SUCCESS\n"); if(flag_config_2)descr_len=data_buf[2]-rd_usb_data(data_buf); else descr_len=data_buf[0]-rd_usb_data(data_buf); while(descr_len>0) { toggle_recv(); p+=0x08; issue_token(( 0 << 4 ) | DEF_USB_PID_IN);status=wait_interrupt(); if(status==USB_INT_SUCCESS) /* DATA階段操作成功 */ descr_len-=rd_usb_data(p); else return(0); } } else return(0);//printf("data USB_INT_fail\n"); endp7_mode=0xc0; toggle_send(); wr_usb_data(0,Request.Req_buf); issue_token(( 0 << 4 ) | DEF_USB_PID_OUT);status=wait_interrupt(); if(status==USB_INT_SUCCESS)/* 狀態(tài)階段操作成功 */ {return(1); //printf("SETUP USB_INT_SUCCESS\n"); } else return(0); } [font=黑體]文字[/font][b]文字[/b][font=宋體]文字[/font]
status=wait_interrupt();//printf("SETUP USB_INT_SUCCESS\n");
//此處獲取到的狀態(tài)值為2e 所以下面不能執(zhí)行
if(status==USB_INT_SUCCESS)/* SETUP階段操作成功 */
前面時對的 請問怎么解決 ?
我按每個按鍵都沒有反應(yīng) 不能得到鍵值 但有一個鍵盤能點亮燈