Thông báo

Collapse
No announcement yet.

Trong CCS làm sao cắt 1 chuỗi 16bit thành 2 chuỗi 8bit ?

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

  • Trong CCS làm sao cắt 1 chuỗi 16bit thành 2 chuỗi 8bit ?

    Mình thực hiện tính toán ra kết quả là 1 chuỗi dữ liệu 16bit. Mình dùng nó để gửi lên PC, mà chỉ có thể gửi 1 lúc 8bit thôi, nên muốn cắt chuỗi này ra thành 2 chuỗi nhỏ, gửi lên 2 lần. Mong mọi người giúp đỡ..

  • #2
    Nguyên văn bởi TheHouse Xem bài viết
    Mình thực hiện tính toán ra kết quả là 1 chuỗi dữ liệu 16bit. Mình dùng nó để gửi lên PC, mà chỉ có thể gửi 1 lúc 8bit thôi, nên muốn cắt chuỗi này ra thành 2 chuỗi nhỏ, gửi lên 2 lần. Mong mọi người giúp đỡ..
    sử dụng lệnh "&", giả sử chuỗi 16bit là A => A1 là 8 bít thấp, A2 là 8 bit cao
    A1=A&0xff;
    A2=swap(A)&0xff;

    Comment


    • #3
      Nguyên văn bởi caovanhuong Xem bài viết
      sử dụng lệnh "&", giả sử chuỗi 16bit là A => A1 là 8 bít thấp, A2 là 8 bit cao
      A1=A&0xff;
      A2=swap(A)&0xff;
      Hjx, làm được rồi, cảm ơn anh. Nhưng lại phát sinh vấn đề. Đem lên VB, do em lấy mã ascii của 2 chuỗi này, nên khi ghép lại nó sẽ thành 2 số ở hệ Decimal ghép lại với nhau. Nên ko biết xử lý sao luôn.

      -------------
      Em xin đặt lại vấn đề. Em cần gửi 1 con số có độ dài 16bit từ VDK PIC lên PC. Và làm sao để VB có thể nhận được con số này ở dạng thập phân.

      Comment


      • #4
        Khi gửi 1 giá trị thập phân 8bit Số chứ ko phải kí tự), khi Vb nhận thì bạn lại lấy mã ascii??Vậy phải làm sao đây?Thật dại dột. Hihi. Bạn hãy nhét cái đống dữ liệu đó vào 1 cái mảng kiểu byte rồi đối xử nó như 1 con số bình thường. Đây là 1 ví dụ hồi mình làm đk động cơ 1 chiều qua PC_Chỉ là vd để bạn tham khảo thôi.


        Add: 97 Quán Nam - Lê Chân - Hải Phòng.
        Tel: 031 518648 Phone: 0904 283 505

        Comment


        • #5
          Nguyên văn bởi TheHouse Xem bài viết
          Hjx, làm được rồi, cảm ơn anh. Nhưng lại phát sinh vấn đề. Đem lên VB, do em lấy mã ascii của 2 chuỗi này, nên khi ghép lại nó sẽ thành 2 số ở hệ Decimal ghép lại với nhau. Nên ko biết xử lý sao luôn.

          -------------
          Em xin đặt lại vấn đề. Em cần gửi 1 con số có độ dài 16bit từ VDK PIC lên PC. Và làm sao để VB có thể nhận được con số này ở dạng thập phân.
          Giả sử số cần gửi là 12345 tử vđk lên máy tính:
          Gửi: printf("%ld",12345);
          Nhận: Máy tính nhận được các kí tự: '1','2,'3,'4','5'. Vậy giá trị cần phải tính ra là:
          10*(10*(10*(10*('1'-'0')+'2'-'0')+'3'-'0')+'4'-'0')+'5'-'0'.
          kí tự '0' có giá trị là 48,

          Comment

          Về tác giả

          Collapse

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

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

          Collapse

          Đang tải...
          X