اطلاعیه

Collapse
No announcement yet.

دقت 16 بیتی از adc ده بیتی در ccs

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    دقت 16 بیتی از adc ده بیتی در ccs

    با درود خسته نباشید
    توی ویزارد ccs میشه دقت 16 بیت برای میکرو هایی که adc ده بیتی دارند انتخاب کرد
    من این کارو کردمدیدم که واقعا 16 بیت جواب میده .
    کد:
    [LEFT]#include <adc16bit test.h>
    
    
    #include <18F452.h>
    #device ADC=16
    
    
    #FUSES NOWDT                    //No Watch Dog Timer
    #FUSES WDT128                   //Watch Dog Timer uses 1:128 Postscale
    #FUSES NOBROWNOUT               //No brownout reset
    #FUSES NOLVP                    //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O
    
    
    #use delay(crystal=20000000)
    
    
    #define LCD_RS_PIN PIN_C0
    #define LCD_RW_PIN PIN_C1
    #define LCD_ENABLE_PIN PIN_C2
    #define LCD_DATA4 PIN_C3
    #define LCD_DATA5 PIN_C4
    #define LCD_DATA6 PIN_C5
    #define LCD_DATA7 PIN_C6
    
    
    #include <lcd.c>
    float adc;
    
    
    void main()
    {
       setup_adc_ports(ALL_ANALOG);
    output_c(0xff);
    
    
    setup_adc(  ADC_CLOCK_INTERNAL  );
    
    
    setup_adc_ports( ALL_ANALOG );
    
    
    
    
    
    
       lcd_init();
    
    
       while(TRUE)
       {
    set_adc_channel(0);
     delay_ms(10);
    adc=read_adc();
     
    lcd_gotoxy(1,1);
    printf(lcd_putc,"V:%5.0f    ",adc);
    
    
    
    
       }
    
    
    }[/LEFT]
    حالا تو این موندم که روش کد نویسی اون چی بوده ؟؟؟ pic18f452 که adc10bit داره ؟؟؟

    #2
    پاسخ : دقت 16 بیتی از adc ده بیتی در ccs

    سلام
    من با ccs کار نمیکنم (یعنی قبولش ندارم)
    ولی اینکه یک ADC با دقت 10 بیت را بشود 16 بیتی راه اندازی کرد فقط یک شوخی هست.
    احتمالا عدد ADC را با مقیاس 16 بیت به شما میده نه دقت 16 بیت
    یعنی هر عددی را از ADC میخونه در 64 ضرب میکنه و به شما تحویل میده

    موفق باشید
    امام علي (عليه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

    دیدگاه


      #3
      پاسخ : دقت 16 بیتی از adc ده بیتی در ccs

      نوشته اصلی توسط Abbas Sarami نمایش پست ها
      سلام
      من با ccs کار نمیکنم (یعنی قبولش ندارم)
      ولی اینکه یک ADC با دقت 10 بیت را بشود 16 بیتی راه اندازی کرد فقط یک شوخی هست.
      احتمالا عدد ADC را با مقیاس 16 بیت به شما میده نه دقت 16 بیت
      یعنی هر عددی را از ADC میخونه در 64 ضرب میکنه و به شما تحویل میده

      موفق باشید
      ممنون من هم قبولش ندارم ولی چیزی که هست اگه ضرب 64 کرده بود باید هر پله 64 تا میرفت بالا . ولی در عمل اینجور نیست.
      همین کد کامپایل کن توی پروتئوس تست کن ببین

      دیدگاه


        #4
        پاسخ : دقت 16 بیتی از adc ده بیتی در ccs

        سلام دوستان یه روش هست به نام oversampling شاید داره از این روش استفاده میکنه

        دیدگاه


          #5
          پاسخ : دقت 16 بیتی از adc ده بیتی در ccs

          بسم الله الرحمن الرحیم

          نوشته اصلی توسط arh8081 نمایش پست ها
          سلام دوستان یه روش هست به نام oversampling شاید داره از این روش استفاده میکنه
          سلام به همه دوستان

          یواش یواش شرائط گرافیکی این انجمن طوری داره سازگار میشه که رغبتی ایجاد بشود تا پست های دوستان را بخوانم .
          به نظر من Oversampling جواب ، ایده و حرف بسیار بسیار درستی است .
          شما احتمالا در ضمن کارهایتان به این نکته برخورد کرده اید که اعداد خروجی از مبدل آنالوگ به دیجیتال هیچ وقت تاکید می کنم (هیچ وقت) پایدار نیستند. در بهترین (بهترین) شرائط بین دو عدد متوالی در حال نوسان هستند . این نوسانات و عدم پایداری به شدت عذاب آور و ناخوشایند است.
          یک علت و دلیلی که برای این اتفاق وجود دارد این است که تعداد زمان نوسانات بین دو عدد تبدیل شده ، در واقع بیانگر اعدادی است که جایی در تبدیل ندارند این اعداد یا بیشتر از پله های رزولوشن و یا کمتر از آن هستند که در 10 بیت نتیجه نهایی ، جایی برای خود ندارند.
          فرض بگیرید که مبدل آنالوگ به دیجیتال 10 بیتی دارید و از محدوده صفر تا 5 ولت را تبدیل می کند. رزولوشن تقریبا برابر 4.8 میلی ولت است. حال اگر که مقدار آنالوگ شما از 4.9 میلی ولت تا 9.5 میلی ولت باشد این مقدار در تبدیل آنالوگ به دیجیتال جایی برای خود ندارد.
          به بیانی دیگر با در نظر گرفتن تمام یا تعدادی از نمونه های پشت سر هم و معدل گیری از آنها ، شما به دقت 16 بیتی خواهید رسید که از تبدیل 10 بیتی ضعیف و کوچولو به دست می آید.
          برای درک بیشتر و بهتر به ویکی https://en.wikipedia.org/wiki/Oversampling مراجعه کنید.

          دست آخر اینکه همیشه ظرفیت یک لیوان ثابت است.
          زیاده جسارت است.
          موفق باشید.
          جدیدترین ویرایش توسط rezaasgharian; ۰۳:۳۰ ۱۳۹۵/۰۵/۱۰.
          والسلام علي من اتبع الهدي .... و درود بر کساني که راه هدايت را دنبال مي کنند.

          هوشمندانه بپرسيد...

          دیدگاه

          لطفا صبر کنید...
          X