PIC Vietnam

Go Back   PIC Vietnam > Truyền thông > Giao tiếp USB, CAN, I2C, SPI, USART...

Tài trợ cho PIC Vietnam
Trang chủ Đăng Kí Hỏi/Ðáp Thành Viên Lịch Tìm Kiếm Bài Trong Ngày Ðánh Dấu Ðã Ðọc Vi điều khiển

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
Prev Previous Post   Next Post Next
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
 

Ðiều Chỉnh
Xếp Bài

Quyền Sử Dụng Ở Diễn Ðàn
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is Mở
Smilies đang Mở
[IMG] đang Mở
HTML đang Tắt

Chuyển đến


Múi giờ GMT. Hiện tại là 04:10 PM.


Được sáng lập bởi Đoàn Hiệp
Powered by vBulletin®
Page copy protected against web site content infringement by Copyscape
Copyright © PIC Vietnam