![]() |
|
Tài trợ cho PIC Vietnam |
Giao tiếp USB, CAN, I2C, SPI, USART... Những giao tiếp được tích hợp trên PIC |
|
Ðiều Chỉnh | Xếp Bài |
![]() |
#5 |
Đệ tử 2 túi
Tham gia ngày: Feb 2006
Bài gửi: 44
: |
Thôi đành làm cách cổ điển vậy.Nhớ tạo một Foder sau: D:/Pic_USB
File chính:Truyền một Xung Sin lên PC theo chuẩn Bulk endpoint81 ----------------------tên là Main.C------------------------------- //////////////////////////////////////////////////////////////////////////////// // Chu y: // // *) De tien trong viec lap trinh va ve do thi tren PC chung ta can: // // truoc khi chuan hoa mau can chon tan so cho thiet bi // // bang cach gui len mot thong tin mac dinh Vd gui len chu "Tan So": // // sau do la gui tiep 4 byte chon tan so cho thiet bi // // *) Truyen bulk thi kich thuoc toi da chi 64byte(Full_speed) // // 512(hight_Speed) nen ta chi co the truyen toi da // // la 64byte=chi so mang // // *) Toc do truyen toi da dat duoc la:1.216Mbytes/s //////////////////////////////////////////////////////////////////////////////// #include <18F4550.h> #fuses HSPLL,NOWDT,NOPROTECT,NOLVP,NODEBUG,USBDIV,PLL5,CP UDIV1,VREGEN #use delay(clock=20000000) #use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7) #DEFINE USB_HID_DEVICE FALSE // Khai bao che do cho cac pipe line #define USB_EP1_TX_ENABLE USB_ENABLE_BULK //Chon che do Bulk cho USB EndIn 0x81 #define USB_EP2_TX_ENABLE USB_ENABLE_BULK //Chon che do Bulk cho USB EndIn 0x82 #define USB_EP3_TX_ENABLE USB_ENABLE_BULK //Chon che do Bulk cho USB EndIn 0x83 #define USB_EP1_RX_ENABLE USB_ENABLE_BULK //Endpoint Out01 //Kich thuoc toi da cho bo dem truyen=64Bytes #define USB_EP1_TX_SIZE 64 #define USB_EP2_TX_SIZE 64 #define USB_EP3_TX_SIZE 64 #define USB_EP1_RX_SIZE 8 //Kich thuoc nhan toi da=8Bytes ///////////////////////////////////////////////////////////////////////////// // D+----------------D+ // // D-----------------D- // // 100nF // // Vdd--------||------Vss // ///////////////////////////////////////////////////////////////////////////// //------->>>........------->>>........Phai thay doi duong dan truoc khi Compiler......------->>>........ #include <D:\Pic_USB\pic18_usb.h> #include <D:\Pic_USB\Bulk.h> //Khai bao cac thong tin va dinh dang cho USB #include <D:\Pic_USB\usb.c> //Su dung cac thu tuc va ham de truyen USB #define SINE_TABLE_SIZE 256 const char sine_table[SINE_TABLE_SIZE]={ 127, 130, 133, 136, 139, 142, 145, 148, 151, 154, 157, 160, 163, 166, 169, 172, 175, 178, 181, 184, 186, 189, 192, 195, 197, 200, 202, 205, 207, 210, 212, 214, 216, 219, 221, 223, 225, 227, 229, 230, 232, 234, 236, 237, 239, 240, 241, 243, 244, 245, 246, 247, 248, 249, 250, 250, 251, 252, 252, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 253, 252, 252, 251, 250, 250, 249, 248, 247, 246, 245, 244, 242, 241, 240, 238, 237, 235, 234, 232, 230, 228, 226, 224, 222, 220, 218, 216, 214, 211, 209, 207, 204, 202, 199, 197, 194, 191, 189, 186, 183, 180, 178, 175, 172, 169, 166, 163, 160, 157, 154, 151, 148, 145, 142, 138, 135, 132, 129, 127, 124, 121, 118, 114, 111, 108, 105, 102, 99, 96, 93, 90, 87, 84, 81, 78, 75, 73, 70, 67, 64, 62, 59, 56, 54, 51, 49, 46, 44, 42, 39, 37, 35, 33, 31, 29, 27, 25, 23, 22, 20, 18, 17, 15, 14, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 3, 2, 2, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 4, 5, 5, 6, 7, 8, 9, 11, 12, 13, 14, 16, 17, 19, 21, 22, 24, 26, 28, 30, 32, 34, 36, 38, 41, 43, 45, 48, 50, 53, 55, 58, 60, 63, 66, 69, 71, 74, 77, 80, 83, 86, 89, 92, 95, 98, 101, 104, 107, 110, 113, 116, 119, 122, 125 }; void main(void) { int8 i; int8 out_data[1]; ///----------------------tao mot bang thong bao truoc khi gui du lieu de chon tan so Hz lay mau------------- char Str[31]; // tao mot mang String gom co //strcpy(str,"Nguyen Duc Hung_DL1_K47_DHBKHN."); //Chuoi String co 31 ki tu ///--------------------------------------------------------------------------------------------------------- //out_data[0]=i; usb_init(); // Day la ham xac dinh cau hinh phan cung USB cua Pic:Che do pullup trong.Phai co neu ko la ko chay //usb_task(); //usb_puts(1,out_data,1,50); //usb_puts(endpoint,out_data,len(out_data),Timeout); ___len(out_data)=chi so mang // Muon dung Endpoint nao thi phai khai bao trong bulk.C //delay_ms(5000); //usb_puts(1,Str,31,50); while (true) { i=0; while(i<=254) { //delay_ms(100); out_data[0]=1;//sine_table[i]; usb_task(); //Day la ham co tac dung luon de y den USB dang su dung trong he thong usb_puts(1,out_data,1,50); // Ham truyen gia tri thu duoc theo mot mang // khong gioi han.Xem cu the trong usb.h.Du lieu truyen theo mang ++i; } i=0; while(i<=254) { //delay_ms(100); out_data[0]=2;//sine_table[i]; usb_task(); //Day la ham co tac dung luon de y den USB dang su dung trong he thong usb_puts(2,out_data,1,50); // Ham truyen gia tri thu duoc theo mot mang // khong gioi han.Xem cu the trong usb.h.Du lieu truyen theo mang ++i; } i=0; while(i<=254) { //delay_ms(100); out_data[0]=3;//sine_table[i]; usb_task(); //Day la ham co tac dung luon de y den USB dang su dung trong he thong usb_puts(3,out_data,1,50); // Ham truyen gia tri thu duoc theo mot mang // khong gioi han.Xem cu the trong usb.h.Du lieu truyen theo mang ++i; } } // sau khi qua cau lenh While() ko the truen USb dc nua ???????????????? //Delay_ms(2000); //usb_task(); //usb_puts(1,Str,31,50); } |
![]() |
![]() |
Ðiều Chỉnh | |
Xếp Bài | |
|
|