Thông báo

Collapse
No announcement yet.

VC++ và COM

Collapse
X
 
  • Lọc
  • Giờ
  • Show
Clear All
new posts

  • #16
    cảm ơn các bác nhiều, em hiểu ý bác rồi ạ. em đang tra trong Codevision mà chưa ra gì cả bác ạ.


    hight_byte = n >> 8; // dịch phải 8 bits để làm gì ạ??? tại sao mình cần phân biệt 2 kiểu low và hight byte ạ??? đa tạ bác

    Comment


    • #17
      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 ạ??

      Comment


      • #18
        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.
        CUNG CẤP PSOC, MẠCH NẠP
        CHUYỂN ĐỔI USB <-> RS485 AutoBaud
        RS232 <-> RS485 MultiBaud
        MẠCH NẠP USBPPI S7-200
        Mobile: 0906076116
        Email:

        Comment


        • #19
          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
          CUNG CẤP PSOC, MẠCH NẠP
          CHUYỂN ĐỔI USB <-> RS485 AutoBaud
          RS232 <-> RS485 MultiBaud
          MẠCH NẠP USBPPI S7-200
          Mobile: 0906076116
          Email:

          Comment


          • #20
            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
            http://techpal.vn
            Chia sẻ công nghệ, cùng thành công

            Comment


            • #21
              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???

              Comment


              • #22
                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
                http://techpal.vn
                Chia sẻ công nghệ, cùng thành công

                Comment


                • #23
                  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 ạ

                  Comment


                  • #24
                    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

                    Sông dài, Thuyền lớn, Biển rộng bao la.
                    Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

                    Comment


                    • #25
                      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ó

                      Comment


                      • #26
                        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

                        Sông dài, Thuyền lớn, Biển rộng bao la.
                        Tháo neo ngôn ngữ, lèo lái con thuyền kiến thức nhân loại.

                        Comment


                        • #27
                          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 ạ.

                          Comment


                          • #28
                            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, 10:21.
                            CUNG CẤP PSOC, MẠCH NẠP
                            CHUYỂN ĐỔI USB <-> RS485 AutoBaud
                            RS232 <-> RS485 MultiBaud
                            MẠCH NẠP USBPPI S7-200
                            Mobile: 0906076116
                            Email:

                            Comment


                            • #29
                              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 ạ..

                              Comment


                              • #30
                                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.
                                CUNG CẤP PSOC, MẠCH NẠP
                                CHUYỂN ĐỔI USB <-> RS485 AutoBaud
                                RS232 <-> RS485 MultiBaud
                                MẠCH NẠP USBPPI S7-200
                                Mobile: 0906076116
                                Email:

                                Comment

                                Về tác giả

                                Collapse

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

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

                                Collapse

                                • mèomướp
                                  Trả lời cho Công thức điện tử
                                  bởi mèomướp
                                  Dạ thời thế giờ thay đổi theo hướng tích cực hơn rồi chú trung sĩ ạ. Kiến thức được chia sẻ ngày càng nhìu nên làm ăn gian dối ko còn dễ dàng như trước đâu ạ. Những thợ nhỏ rồi sẽ thành công nhân sản xuất đồ mới hết thay vì sửa chữa lặt vặt...
                                  hôm nay, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ cùng chuẩn tín hiệu thì chắc chắn là nhận ạ. Vì bản chất oled hay lcd thì đều phải có mạch chuyển đổi trên thanh gỗ rồi chuyển sang những chip xử lý hàng nghìn chân gắn trên những tab mỏng dính rồi mới ra các điểm ảnh theo hàng...
                                  hôm nay, 20:31
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  Ok , thanks bác đã chỉ...
                                  hôm nay, 15:06
                                • nguyendinhvan
                                  Công thức điện tử
                                  bởi nguyendinhvan
                                  Sau bao năm nghiên cứu cái dtvn. Tôi phát hiện công thức này. Các anh em xem đúng bao nhiêu phần trăm nhé !

                                  Chập thì thay. Cháy thì tháo
                                  Làm thì láo. Báo thì hay
                                  May thì khoe. Rủi thì bỏ
                                  Thành tích nhỏ. Báo thành to
                                  Làm cho có. Báo chi li
                                  Sai cả li. Báo
                                  ...
                                  hôm nay, 00:35
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  có chắc ko b, màn lcd phải có cao áp mới sáng, màn led thì ko có, ko có cáp chuyển đổi thì lắp thế nào đc ??...
                                  Hôm qua, 22:31
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ ý chú là màn oled ấy ạ. Cùng chuẩn lvds cùng độ phân giải thì cắm được ạ. Còn nó mà khác thì hơi khó vì oled các điểm ảnh nó tự phát sáng chứ ko dùng đèn nền như lcd. Cháu chỉ biết đến vậy thôi ạ. Chú muốn nghịch phải tự tìm hiểu kỹ trước khi mua thôi, khó mà ông thợ nào tư vấn vụ này...
                                  Hôm qua, 22:14
                                • bactho
                                  Trả lời cho Tự làm máy đo Cuộn cảm
                                  bởi bactho
                                  Hay đấy bạn ạ. Đây có thể hiểu là máy đo cuộn dây. Tiện đây xin cho hỏi bạn có hiểu rõ về máy nạp rôm pcb 45 của hãng thiên minh không giúp mình cách cài fw của nó với vì mình vừa được anh bạn cho nhưng lại không biết cài fw nên chưa dùng được. Nếu có thể thì bạn giúp mình với...
                                  Hôm qua, 21:48
                                • yname11
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi yname11
                                  màn của mình là LCD , giờ m muốn mua màn LED để thay thế (ko muốn dùng màn LCD nữa) , lên muốn hỏi xem có cáp chuyển đổi nào có thể cắm đc màn LED vào ko , tất nhiên phải có cùng số chân pin với màn cũ rồi . VD: màn cũ là lcd mỏng , 40 pin...
                                  Hôm qua, 21:43
                                • bactho
                                  Trả lời cho các bạn giúp mình về file HEX với!!!
                                  bởi bactho
                                  Bạn vào trang phuclanshop.com ,tìm đến góc kỹ thuật. Tác giả vương khánh hưng nói rất rõ về điều bạn tìm...
                                  Hôm qua, 21:21
                                • mèomướp
                                  Trả lời cho Xin hỏi về màn hình laptop
                                  bởi mèomướp
                                  Dạ màn hình lcd đều có thể lai cấy cho nhau được hết ạ. Các loại cáp, bo mạch chuyển đổi lvds rất nhìu, với dòng sony còn phải nhổ cả chip nhớ của main cũ đưa lên gỗ thì mới lắp sang máy khác đc, chưa kể các bệnh về màu... ngay cả...
                                  Hôm qua, 20:43
                                Đang tải...
                                X