Thông báo

Collapse
No announcement yet.

Đọc ADC với pic 16f887

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

  • #16
    Nguyên văn bởi Acxen_lupine Xem bài viết
    Với PIC16877 thì x có thể là 8 hoặc 10 hoặc 16.
    Làm gì có vụ chia cho 4 ở đây nhỉ. Nếu chọn ADC=8 thì A/D RESULT REGISTERS sẽ được định dạng Left Justified và kết quả trả về của hàm read_adc() là Byte ADRESH.
    Ối nhầm ! Xin lỗi các bác.
    Với x = 16 có khác biệt gì hả bác ?

    Comment


    • #17
      Nguyên văn bởi duong_act Xem bài viết
      Hàm read_adc() sẽ trả về giá trị ADC có số bit bằng với số bit đã khai báo trong câu lệnh
      #device *=16 adc=x.
      Đương nhiên là để lấy được đúng 10 bit phải dùng biến 16 bit.
      nhưng vấn đề là sao e dùng ccs khai báo dòng #device 16f887=16 adc=10 nó dịch báo lỗi can not change device type this far into the code làm sao khắc phục lỗi này các bác ??? , sao e có đọc trong 1 tài tiệu hướng dẫn dùng ccs thì nó kêu đã khai báo #include<16f887.h> rùi thì ko khai báo #device nữa ?. zậy nếu ko khai báo #device thì có cách nào sửa file #include để được 10bit ko ???. Mà cái chỗ khao báo #device *=16 adc=10 , thì cái dấu * là tên con chip hả bác

      // ADC Test
      //
      //
      //
      //***********************************************
      #include <16f887.h>
      #include <math.h>
      #include <lcd1620.c>
      #device 16F887=16 adc=10
      #fuses HS,NOWDT,NOPROTECT,NOLVP
      #use delay(clock=4000000)
      // Khai bao ham
      void ledduoi(void);
      void readADC(void);
      //Khai bao bien
      Last edited by minhtri0405; 28-03-2013, 10:15.
      CK6C -HUI

      Comment


      • #18
        Nguyên văn bởi minhtri0405 Xem bài viết
        nhưng vấn đề là sao e dùng ccs khai báo dòng #device 16f887=16 adc=10 nó dịch báo lỗi can not change device type this far into the code làm sao khắc phục lỗi này các bác ??? , sao e có đọc trong 1 tài tiệu hướng dẫn dùng ccs thì nó kêu đã khai báo #include<16f887.h> rùi thì ko khai báo #device nữa ?. zậy nếu ko khai báo #device thì có cách nào sửa file #include để được 10bit ko ???

        // ADC Test
        //
        //
        //
        //***********************************************
        #include <16f887.h>
        #include <math.h>
        #include <lcd1620.c>
        #device 16F887=16 adc=10
        #fuses HS,NOWDT,NOPROTECT,NOLVP
        #use delay(clock=4000000)
        // Khai bao ham
        void ledduoi(void);
        void readADC(void);
        //Khai bao bien
        #device PIC16F887*=16, ADC=10

        Comment


        • #19
          Nguyên văn bởi chung1608 Xem bài viết
          #device PIC16F887*=16, ADC=10
          vẫn ko được bạn ơi
          Click image for larger version

Name:	untitled.JPG
Views:	1
Size:	110.3 KB
ID:	1376126
          CK6C -HUI

          Comment


          • #20
            Nguyên văn bởi minhtri0405 Xem bài viết
            vẫn ko được bạn ơi
            [ATTACH=CONFIG]62955[/ATTACH]
            Chỉ cần khai báo là
            #device *=x ADC =y, không cần serial của chíp nữa vì đã có ở trong file #include<16f877.h>
            x = 5/8/16 cái này không liên quan đến ADC.
            Quan tâm tới ADC thì chỉ cần viết là #device ADC =y
            y = 8/10/16 với các chip PIC có ADC 10 /12 bít.
            Nếu
            y=16 thì kết quả trả về là số nguyên 2 byte trong đó 10 bit có ý nghĩa của ADC nằm bên trái (tức là nằm ở 10 bit cao, 6 bit thấp còn lại=0). Dải giá trị trả về 0000h - FFC0h. Chưa biết dùng làm gì.
            y =10, thì trả về là số nguyên 2 byte trong đó 10 bit của ADC nằm bên phải, 6 bit cao =0. Giá trị = 0000h - 03FFh. Thông thường, hay dùng.
            y=8, thì trả về là số nguyên 1 byte (là 8 bit cao trong 10 bit có ý nghĩa của ADC). Giá trị = 00h - FFh. Trường hợp này được sử dụng khi không cần ADC có độ phân giải cao, làm như vậy chương trình chỉ cần xử lý số liệu 1 byte sẽ nhanh gọn hơn.
            Last edited by Acxen_lupine; 28-03-2013, 13:28.
            Hôm nay trời nắng chang chang.
            Mèo con đi học chẳng mang thứ gì.
            Chỉ mang một cái bút chì.
            Và mang một mẩu bánh mì con con.

            Comment


            • #21
              mới giải quyết xong , khai báo thế nào nó cũng nhận, mỗi tội là phải đưa cái dòng #device đó lên sau dòng #include <16f887.h> , quái gị thật ko bít tại sao luôn có ai giải thích lí do được ko ????
              CK6C -HUI

              Comment

              Về tác giả

              Collapse

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

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

              Collapse

              Đang tải...
              X