Ðề tài: USB kho qua!
View Single Post
Old 20-06-2007, 01:50 PM   #5
doianhve
Đệ 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);
}
doianhve vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn