RP Store Tìm linh kiện theo mã, gửi BOM nhận báo giá Gửi BOM

VC++ và COM

Collapse
X
 
  • Giờ
  • Show
Clear All
new posts

  • nghoang
    replied
    ý, ông thầy nói là Visul C studio mới chết chứ, em ko hiểu nỗi cái ông này nữa, ngốc quá đi mất, c nào mà chẳng là C, Visual nào chẳng được chứ. hichic. cảm ơn bác nhiều

    Leave a comment:


  • encoder
    replied
    chương trình VC++ của bạn ổn chưa. Chương trình này tôi viết cũng lâu rồi, vì bây giờ tôi chủ yếu viết với C#. bạn tham khảo. Hình như chương trình này hiện thị Cstring, do dòng lệnh ép kiểu từ VARIANT. bạn thử thay đổi lại một chút xem nhé, máy tôi không cài VC6++
    Last edited by encoder; 13-09-2007, 23:24.

    Leave a comment:


  • nghoang
    replied
    hichic, em còn 2 tiếng nữa thôi mà vẫn chưa chạy bác ạ, huhu. làm sao được nhĩ bác ơi.

    Leave a comment:


  • encoder
    replied
    cũng giống như số thập phân vậy. VD với số 23 thì số 2 là số có trọng số cao hơn số 3. thì hight byte va lowbyte cũng mang nghĩa như vậy. theo phép toán decimal thì
    2 = (23) / 10 <-> hightByte = (int) >> 8;
    3 = (23) % 10 <-> lơbyte = (int) & 0xff;
    sự khác nhau chỉ là phép tính trong hệ thập phân và hệ nhị phân thôi.

    Leave a comment:


  • nghoang
    replied
    bác có thể chỉ em rõ hơn cái bytecao và byte thấp ko ạ?

    cảm ơn bác nhiều.

    Em dần hiểu hơn một chút rồi ạ..

    Leave a comment:


  • encoder
    replied
    nếu truyền số nguyên thì chỉ cần 2 lần truyền ký tự là được. Không nên convert sang string vì như vậy tốn tài nguyên và không tối ưu về tốc độ. ví dụ về cách truyền số nguyên idata:

    từ VDK: (code tượng trưng)
    UART_PutChar(idata >> 8); // send hight byte
    UART_PutChar(idata); // send low byte
    // UART_PutChar là hàm gửi 1 kí tự

    trên PC (ngôn ngữ C#)
    hi = serialPort.ReadByte(); // read hightByte
    low = serialPort.ReadByte(); // read low byte
    idata = (hi << 8) | low; // nhpa lai thanh so nguyen

    như vậy bạn chỉ cần truyền 2 kí tự là đủ, nếu convert sang string thì bạn có thể phải truyền nhiêu hơn. Ví dụ truyền số nguyên 12345 thì phải truyền 5 kí tự liên tiếp '1', '2', '3', '4', '5'. Hơn nữa hàm biến đổi số nguyên thành string cũng khá tốn bộ nhớ và thời gian thực thi.
    Last edited by encoder; 13-09-2007, 09:21.

    Leave a comment:


  • nghoang
    replied
    bác lại cũng ngủ luôn mất rồi, hichic

    cảm ơn bác, nhưng em ko cần cái Terminal làm gì cả, em cần đọc vaò 1 chương trình console trong VC thôi mà.

    bạn cứ truyền số nguyên,miễn là truyền nhận okie là dc rồi.

    Tiếc là em ko hiểu câu của bác, em chưa truyền được gì (cả nguyên và thực) bác ạ.

    Leave a comment:


  • quoc_thaibk
    replied
    Nguyên văn bởi nghoang Xem bài viết
    1.Sử dụng thư viện stdio chuẩn. mình làm thế nào để sử dụng đựoc cái này bác ơi?

    2. Nhưng nếu dùng realtime thì lời khuyên là không nên
    realtime nghĩa là gì ạ? không nên là không nên làm gì ạ?

    3. Cái này truyền dữ liệu ADC lên terminal trên máy tính.
    terminal trên máy tính là gì vậy bác ơi???

    4.PS:Mình xài GCC không xài CV.

    GCC và CV là gì a?

    Em mới làm quen điện tử và AVR, nên mong bác trả lời cụ thể chút ạ (cứ coi em là kẻ ngốc cũng được ạ), em biết bác đã làm rất khá các mảng này nên mới hiểu nhanh và trả lời vắn tắt như vậy.

    Nhưng thực sự em đọc thì rất khó hiểu được nội dung ạ. đa tạ bác!!!! mong bác giúp em đêm nay.

    cái này có

    1)stdio là thư viên giao tiếp có các hàm giao tiếp như :"printf,scanf" hàm này có thể nhận tham số dạng số thực tự chuyển đổi sang dạng kí tự rồi truyền đi,nhưng hình như trong GCC nó bị lược giản chức năng truyền số thực,bạn cứ truyền số nguyên,miễn là truyền nhận okie là dc rồi.
    2)realtime vì lệnh này mà chạy thì tốn rất nhiều chu kì máy của vdk.
    3)Terminal là 1 chương trình đầu cuối giao tiếp máy tính bằng cổm COM bạn khôgn cần viết ct cho máy tính có thể lấy cái này xài
    link cho ct này nằm ở đây
    4)AVR GCC là bộ ct dùng để dịch C cho AVR còn CV là codevision AVR.

    đi ngủ,mưa làm nhức cái đầu.hichic

    Leave a comment:


  • nghoang
    replied
    1.Sử dụng thư viện stdio chuẩn. mình làm thế nào để sử dụng đựoc cái này bác ơi?

    2. Nhưng nếu dùng realtime thì lời khuyên là không nên
    realtime nghĩa là gì ạ? không nên là không nên làm gì ạ?

    3. Cái này truyền dữ liệu ADC lên terminal trên máy tính.
    terminal trên máy tính là gì vậy bác ơi???

    4.PS:Mình xài GCC không xài CV.

    GCC và CV là gì a?

    Em mới làm quen điện tử và AVR, nên mong bác trả lời cụ thể chút ạ (cứ coi em là kẻ ngốc cũng được ạ), em biết bác đã làm rất khá các mảng này nên mới hiểu nhanh và trả lời vắn tắt như vậy.

    Nhưng thực sự em đọc thì rất khó hiểu được nội dung ạ. đa tạ bác!!!! mong bác giúp em đêm nay.

    cái này có

    Leave a comment:


  • quoc_thaibk
    replied
    Sử dụng thư viện stdio chuẩn.
    Khỏi mất time viết code chuyển đổi.
    Nhưng nếu dùng realtime thì lời khuyên là không nên.
    Cái này truyền dữ liệu ADC lên terminal trên máy tính.

    PS:Mình xài GCC không xài CV.
    Attached Files

    Leave a comment:


  • nghoang
    replied
    tính ra nó khó thế ạ, em đang đọc bài này, mà có nhiều lệnh ko hiểu quá, xin các bác chỉ giúp em với. đây là toàn bộ chương trình của bác gtvt45 ạ.

    http://dientuvietnam.net/forums/show...?t=7391&page=2

    cảm ơn các bác nhiều lắm ạ

    Leave a comment:


  • techpro
    replied
    Nguyên văn bởi nghoang Xem bài viết
    Chia ra điện áp rồi lại nhân rồi vẫn phải chuyển sang số nguyên rồi lại chuyển thành string. Nếu làm trên CodeVision

    nghĩa là sao vậy bác?? sao ta phải chuyển sang string a???
    Mình nhớ không lầm thì trong CodeVision chỉ có hàm truyền kí tự tức là truyền một char. Để truyền một số trước hết bạn phải chuyển thành xâu kí tự sau đó truyền từng kí tự một như để truyền xau kí tự: "abc" thì bạn phải truyền lần lượt "a","b" và "c". Để truyền một số nguyên bạn đổi nó thành xâu sau đó cũng thực hiện truyền từng kí tự trong xâu. Không biết CodeVision mới nhất có hỗ trợ truyền xâu kí tự không

    Leave a comment:


  • nghoang
    replied
    Chia ra điện áp rồi lại nhân rồi vẫn phải chuyển sang số nguyên rồi lại chuyển thành string. Nếu làm trên CodeVision

    nghĩa là sao vậy bác?? sao ta phải chuyển sang string a???

    Leave a comment:


  • techpro
    replied
    Nguyên văn bởi encoder Xem bài viết
    có một cách đơn giản mà hiệu quả hơn, tôi nghĩ bạn có thể áp dụng. Đó là lấy số thực nhân với 10 (nếu muôn sau dấu , 1 chữ số có nghĩa) hoặc nhân 100 (nếu 2 chữ số có nghĩa) rồi truyền nó theo số nguyên lên máy tính. máy tinh nhận được lại chia cho 10 hay 100 thành số thực. Ví dụ 2,3 thì truyền thành 23 hoặc 230.
    Nếu là giá trị điẹn áp từ 0 - 5V thì bạn không nên truyền theo đơn vị Volt mà truyền theo mV (tức là nhân với 1000). 2.3 V thì thì truyền thành 2300.
    Chia ra điện áp rồi lại nhân rồi vẫn phải chuyển sang số nguyên rồi lại chuyển thành string. Nếu làm trên CodeVision

    Leave a comment:


  • encoder
    replied
    Nguyên văn bởi nghoang Xem bài viết
    xx // start byte
    0x00 // hi byte
    0x01 // low byte
    (yy) // có thể thêm ki tự '.' nếu muốn
    0x00 // hi byte
    0x02 // low byte
    zz // stop byte

    các dòng này em chưa hiểu ý nghĩa của nó lắm bác ạ, sao có xx, yy, zz là gì vậy ạ??
    cái xx, yy, zz là các byte bạn tự định nghĩa trong giao thức truyền nhận của mình. Bạn thích nó bằng bao nhiêu cũng được. Việc truyền thứ tự hi_byte hoặc low_byte trước cũng là một kiểu định nghĩa mà do bạn đặt ra để bên nhận theo giao thức đó mà nhận đúng dữ liệu

    Leave a comment:

Về tác giả

Collapse

nghoang Tìm hiểu thêm về nghoang

Bài viết mới nhất

Collapse

There are no results that meet this criteria.

Đang tải...