Thông báo

Collapse
No announcement yet.

Gửi giá trị Lên Máy Tính Lớn hơn 8 bit phải làm sao [ ADC ]

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

  • Gửi giá trị Lên Máy Tính Lớn hơn 8 bit phải làm sao [ ADC ]

    Sau một thời gian mần mò trên mô phỏng ! ghét quá đi làm cái mạch thật luôn và đã thành công 1 phần có 1 thắc mắc " nhỏ nhỏ " mong ai biết về AVR giúp em với đây là chương trình main của mình :

    while(1)
    {
    putchar(read_adc(0)); // gửi giá trị ADC lên máy vi tính ( 0 - 1023 ) ????
    delay_ms(1000);
    }


    + lúc đầu vặn ADC lên tịnh tiến rất tốt nhưng khi qua 255 thì nhảy loạn xạ xì ngầu huhu
    + ai đó chỉ cách gửi lên máy tính với giá trị lớn hơn 8 bit với huhu

  • #2
    vì giá trị adc là 10 bit còn gữi 1 byte thì có 8 bit do đó nó sai thôi
    giải quyết: đọc giá trị adc rồi lưu vào biến int16, sau đó gữi 2 byte (byte cao, byte thấp của biến int16)
    Đang thất nghiệp 0988-010-486

    Comment


    • #3
      Ờ mình hiểu là như vậy nhưng lập trình sao nhờ có thể chỉ rõ hơn không (xin lỗi vì mình mới chỉ học AVR thôi hihi )

      Comment


      • #4

        Comment


        • #5
          Do bạn dÙng lệnh putchar có nghĩa là xuất ra giá trị thuộc kiểu char(8 bit).Thao tác với số 16 bit có thể dÙng cách chèn asm,khai báo kiểu union (search xem),bytelow=int16&0xFF;bytehigh=(int16>>8)&0xFF;
          , , ,

          Comment


          • #6
            tình hình là chưa hiểu có mấy bác hướng dẫn làm như thế này : putchar(read_adc(0)/256;putchar(read_adc(0)%256);
            đã test rồi nhưng vẫn không đúng à nếu truyền 16bit như vậy mình có cần thay đổi cấu trúng nhận giá trị bên lập trình visual bên kia hay không vậy hix hix rối quá

            Comment


            • #7
              Tất nhiên bạn phải nhận 2 byte trên máy tính rồi.
              , , ,

              Comment


              • #8

                Comment


                • #9
                  Biến giá trị ADC 10 bit ( tất nhiên là đang lưu dưới dạng 16 bít) ra làm 4 số 8 bit : nghìn, trăm, chục, đơn vị. Ta được 4 byte giá trị. Kết hợp với 1 số byte Start, Stop hoặc gì gì đó ta được một khung truyền cố định là n byte.
                  Ví dụ 1 byte Start, 1 byte Stop, ta sẽ có một khung dữ liệu 6 byte. => Truyền khung này đi. Trong khung truyền có 4 byte giá trị còn các byte khác tùy mục đích mà sử dụng.

                  Comment

                  Về tác giả

                  Collapse

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

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

                  Collapse

                  Đang tải...
                  X