Thông báo

Collapse
No announcement yet.

xin giúp đỡ e về cách chuyển đổi số 16bit đưa vào 2 thanh ghi 8 bit

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

  • xin giúp đỡ e về cách chuyển đổi số 16bit đưa vào 2 thanh ghi 8 bit

    - E dùng CCS C để lập trình nhưng có phần này ko biết viết sao nữa. mong các a giúp đỡ để e viết được tiếp chương trình của e.

    - Giả sử e khai báo biến

    int16 vitri;

    - bây giờ nếu e muốn đưa giá trị từ 2 thanh ghi 8 bit vào biến vitri (16 bit) thì e dùng code như sau (cái này do e tham khảo các bài khác):


    void Read_QEI() // ĐỌC ENCODER
    {
    vitri = make16(POSCNTH,POSCNTL);


    (2 thanh ghi POSCNTH,POSCNTL là 8 bit)


    - Giả sử bây giờ e có biến vitri đang mang giá trị số 16 bit nếu muốn đưa vào 2 thanh ghi POSCNTH,POSCNTL thì code phải viết như thế nào? (8 bit cao của vitri đưa vào POSCNTH và 8 bit thấp đưa vào POSCNTL). mong các a giúp đỡ gấp với vì e sắp nộp đồ án rồi, chả là e đang viết chương chình nhưng tới phần này ko biết viết. Xin cảm ơn các a rất nhiều!
    Last edited by nct; 08-04-2010, 20:02.

  • #2
    mọi người giúp e với !!! hu hu hu !

    Comment


    • #3
      không ai giúp e sao ! ?

      Comment


      • #4
        PHP Code:
        int16 number16bit;
        int8 highbytelowbyte;
        highbyte = (int8) ((number16bit>>8)&0xFF);
        lowbyte = (int8) (number16bit&0xFF); 
        lệnh >> là lệnh dịch bit. học toàn cái cao siêu mà cái này lại quên à
        123...

        Comment


        • #5
          Nguyên văn bởi nbb3i Xem bài viết
          PHP Code:
          int16 number16bit;
          int8 highbytelowbyte;
          highbyte = (int8) ((number16bit>>8)&0xFF);
          lowbyte = (int8) (number16bit&0xFF); 
          lệnh >> là lệnh dịch bit. học toàn cái cao siêu mà cái này lại quên à
          thanks a nhiều lắm! tại vì e học mỗi bài 1 chút rồi tham khảo nhiều bài khác để viết chương trình nên thành ra vậy ! chương chình e viết vẫn chưa xong có gì a giúp e thêm với nhé ! cảm ơn a rất nhiều!

          Comment


          • #6
            hiện em đang làm đồ án thiết kế bộ anten thu sóng wireless dung chuan úb cho may tính ban anh nao có ý tưởng thì chỉ dùm em em cam ơn nhieu

            Comment


            • #7
              Ơ cái này là byte cao, byte thấp , cơ bản mà ... dùng dịch bit là OK rùi . Còn không hiểu nó là gì thì dùng kiểu nông dân :
              byte cao = (int)16bit/256
              byte thấp = 16bit- byte cao * 256.

              VD : 16 bit : FFAA, (65450) cái ta cần tách ra 0xFF = 255 , 0xAA = 170
              ==> 65450/256 = (int) 255.6640625.... vì ta chỉ lấy phần nguyên (int) nên giá trị lúc này chỉ là 255 (0xFF)
              rồi lại 65450- 255*256 = 65450- 65280 = 170 (0xAA )

              --- Đây là cách nông dân nhất... nhưng vẫn đảm bảo chính xác .

              Comment


              • #8
                Nguyên văn bởi phuchiepjsc Xem bài viết
                Ơ cái này là byte cao, byte thấp , cơ bản mà ... dùng dịch bit là OK rùi . Còn không hiểu nó là gì thì dùng kiểu nông dân :
                byte cao = (int)16bit/256
                byte thấp = 16bit- byte cao * 256.

                VD : 16 bit : FFAA, (65450) cái ta cần tách ra 0xFF = 255 , 0xAA = 170
                ==> 65450/256 = (int) 255.6640625.... vì ta chỉ lấy phần nguyên (int) nên giá trị lúc này chỉ là 255 (0xFF)
                rồi lại 65450- 255*256 = 65450- 65280 = 170 (0xAA )

                --- Đây là cách nông dân nhất... nhưng vẫn đảm bảo chính xác .
                e xin cảm ơn các a rất nhiều ! e đã viết được code ! nhưng chưa biết chạy thật ok không nữa, mô phỏng protues đã tạm được, đề tài của e là điều khiển vị trí trục vít me ! có gì các a giúp e thêm với nhe!

                Comment

                Về tác giả

                Collapse

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

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

                Collapse

                Đang tải...
                X