Thông báo

Collapse
No announcement yet.

Kết hợp Ds18b20 và ADC bị lỗi

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

  • Kết hợp Ds18b20 và ADC bị lỗi

    Chào các bác . Em đang làm cái BTL đo nhiệt độ bằng DS18B20 và đo khoảng cách dùng ADC.
    Em dùng CodeVision AVR . Em test riêng thì cả 2 code đều Ok nhưng khi làm 1 code chung thì đo nhiệt độ không chạy . Ngay cả khi em bỏ đọc ADC của con sensor k/c trong hàm while thì nhiệt độ vẫn ko đọc được . Lần mò 1 hồi, em loại bỏ thêm phần khởi tạo
    trong main ()
    Code:
    ADMUX=FIRST_ADC_INPUT | (ADC_VREF_TYPE & 0xff);
    ADCSRA=0xEB;
    SFIOR&=0x1F;
    thì lại đọc được nhiệt độ bt. Vậy là tại sao hả các bác .Bây giờ làm thế nào để đọc dc cả nhiệt độ và ADC ?

    P/S : Em có thêm 1 điều nhỏ muốn hỏi là ban đầu em viết cái code đo nhiệt độ thì chạy Ok . SAu đó em viết cái code khác giống y chang thì lại ko đọc được đến câu lệnh
    Code:
      sprintf(lcd_buffer,"%.4f",tg);
    thì nó chỉ hiện ra "4f" thôi mà ko phải là giá trị tg. Em liền copy, paste cả cái code ban đầu của em vào cái code mới thì vẫn như vậy . Em ko hiểu tại sao luôn , bác nào giải thích hộ em với
    Mong hồi âm . Thanks nhiều !

  • #2
    Muốn dùng sprintf thì phải config cấu hình của Project trước, vào Project->Configure chọn tab C Compiler. Trong phần sprintf Features chọn long, width. Tại sao phải làm thế thì tự suy luận nhé

    Còn con DS18B20, trong phần Code của CodeVisionAVR hình như có lỗi gì đó, nó rất chi là khó tính , nếu bạn dùng thêm 1 ngắt nào đó trong chương trình thì gần như chắc chắn là không thể đọc được nhiệt độ nữa, cũng chưa thử tìm hiểu xem tại sao.
    PNLab
    Mạch nạp/debug ULink2, Jlink ARM USB
    Mạch nạp AVR, PIC, 8051, MSP430 USB
    Mạch phát triển STM32, ARM9, ARM11
    more...www.pnlabvn.com

    Comment


    • #3
      Nguyên văn bởi sphinx Xem bài viết
      Muốn dùng sprintf thì phải config cấu hình của Project trước, vào Project->Configure chọn tab C Compiler. Trong phần sprintf Features chọn long, width. Tại sao phải làm thế thì tự suy luận nhé

      Còn con DS18B20, trong phần Code của CodeVisionAVR hình như có lỗi gì đó, nó rất chi là khó tính , nếu bạn dùng thêm 1 ngắt nào đó trong chương trình thì gần như chắc chắn là không thể đọc được nhiệt độ nữa, cũng chưa thử tìm hiểu xem tại sao.
      Tại hạ chẳng biết lấy gì cảm ơn cao thủ nữa
      Đúng là ban đầu tại hạ viết code nó không chạy, sau đó cũng làm như bro là thêm kiểu thì OK .1 tháng sau không sờ đến code, viết lại thì quên cấu hình .


      À , bro cho tại hạ hỏi thêm là để cấp 5V chẩn cho Vref thì nên dùng cách nào. Tại hạ dùng 7805 nó nhảy kinh quá .Tại hạ cũng có nghe nói là dùng Tl431 nhưng không biết có cách nào hay hơn ko

      Comment

      Về tác giả

      Collapse

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

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

      Collapse

      Đang tải...
      X