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 Bài Trong Ngày 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

Trả lời
 
Ðiều Chỉnh Xếp Bài
Old 18-03-2010, 09:56 AM   #1
cskiller
Đệ tử 4 túi
 
Tham gia ngày: Aug 2008
Bài gửi: 89
:
Rất đơn giản thôi bạn ah, trên C bạn dùng struct lưu 3 số integer 16 bit để chứa dữ liệu
Code:
typedef struct{
    unsigned int16 ADC0;
    unsigned int16 ADC1;
    unsigned int16 ADC2;
} USBAdc;
Khi gởi qua cổng USB thì chuyển kiểu sang dạng mảng byte bình thường.

Còn trên C# bạn làm việc ngược lại, khai báo 1 struct hoặc class tương ứng nhưng nhớ dùng thêm chỉ thị alignment từng byte 1(để đảm bảo đúng thứ tự dữ liệu):
Code:
using System.Runtime.InteropServices;
...
[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Ansi, Pack = 1)]
public class USBAdc
{
    public UInt16 ADC0;
    public UInt16 ADC1;
    public UInt16 ADC2;
    ....
    static public USBAdc FromByteArray(byte[] byte_Array)
    {
        USBAdc ret;
        GCHandle handle = GCHandle.Alloc(byte_Array, GCHandleType.Pinned);
        ret = (USBAdc)Marshal.PtrToStructure(handle.AddrOfPinnedObject(), typeof(USBAdc));
        handle.Free();
        return ret;
    }
}
Chú ý: FromByteArray là 1 phương thức static có chức năng chuyển 1 mảng Byte nhận được từ USB sang class USBAdc:
Code:
USBAdc adc= USBAdc.FromByteArray(usb_array_data);
...
adc.ADC0
adc.ADC1
adc.ADC2
Regards
__________________
Quang báo RG/RGB 6/8/12/16 bits màu
Phone No: 0905.034.086
Email: lmquyen@gmail.com
cskiller vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Old 18-03-2010, 12:26 PM   #2
tbk_05
Đệ tử 1 túi
 
Tham gia ngày: Mar 2010
Bài gửi: 14
:
Cảm ơn anh, em sẻ nghiên cứu thuật toán của anh nói, có gì mới em sẻ hồi âm lại.

Chào anh!
tbk_05 vẫn chưa có mặt trong diễn đàn   Trả Lời Với Trích Dẫn
Trả lờ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à 03:47 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