اطلاعیه

Collapse
No announcement yet.

مشکل در خواندن 8 تا ADC

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

    مشکل در خواندن 8 تا ADC

    من با مکیکرو مگا 16 8 تا ADC را میخوانم و هر وقت مقدار هر کدام از ADC ها از 700 بیشتر شد یک متن روی ال سی دی کاراکتری نشان بده امامیکرو درست این کار را انجام نمی ده! گاهی وقتها گیر می کنه بعد درست می شود دلیل watchdog نیست چون هنگ نمیکند و ریست نمیشه ! خروجی 8 تا ترانس بعد از یکسو شدن به ADC ها وصل شده و مقدار ولتاژ روی adc ها ممکنه هر لحظه تغییر می کنه

    #2
    پاسخ : مشکل در خواندن 8 تا ADC

    منظورت اینه که با تعداد ADC کمتر درست کار می کنه ؟
    سرعت تغییر چقدره ؟
    نویزگیری کردی ؟

    دیدگاه


      #3
      پاسخ : مشکل در خواندن 8 تا ADC

      نوشته اصلی توسط tarasheh
      من با مکیکرو مگا 16 8 تا ADC را میخوانم و هر وقت مقدار هر کدام از ADC ها از 700 بیشتر شد یک متن روی ال سی دی کاراکتری نشان بده امامیکرو درست این کار را انجام نمی ده! گاهی وقتها گیر می کنه بعد درست می شود دلیل watchdog نیست چون هنگ نمیکند و ریست نمیشه ! خروجی 8 تا ترانس بعد از یکسو شدن به ADC ها وصل شده و مقدار ولتاژ روی adc ها ممکنه هر لحظه تغییر می کنه
      برنامت به جه زبانیه؟

      دیدگاه


        #4
        پاسخ : مشکل در خواندن 8 تا ADC

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

        دیدگاه


          #5
          پاسخ : مشکل در خواندن 8 تا ADC

          سلام
          اگه از بیسکام استفاده میکنی بیسکام یکی از نقطه ضعفاش اینه که میخواد مثلا بهینه سازی بکنه خیر سرش واسه همین اگه نوشتی start adc دیگه هیچ جای برنامه ننویس stop adc و start adc چون دیگه Adc از کار میافته و روی تابع getadc گیر میکنه

          اگه واقعا نیاز به قطع و وصل Adc داری باید رجیستر ها رو دستی تنظیم کنی مثل اسمبلی یا سی
          به وبلاگم سر بزنید

          دیدگاه


            #6
            پاسخ : مشکل در خواندن 8 تا ADC

            نوشته اصلی توسط حامــد
            منظورت اینه که با تعداد ADC کمتر درست کار می کنه ؟
            سرعت تغییر چقدره ؟
            نویزگیری کردی ؟

            آیا با کم کردن تعداد کانالها مشکل حل میشه ؟

            دیدگاه


              #7
              چگونگی خواندن ADC در محیط کدویژن

              سلام

              در کدویژن چطور می شه از ADC ها استفاده کرد.
              یه ولتاژی رو که بین 0 تا 5 پیوسته است میخام بدم به ورودی (مثلا فرض کنید پایه ی وسطی پتانسیومتر) حالا چه جوری به کدویژن بفهمونم که اینو بخون!

              اگه لطف کنید سینتکس رو کامل بنویسین.
              ممنون
              بابا هی این امضای منو پاک نکن! حساسیت داری؟!
              "سبز سبــــزم ریشه دارم! من درختــــــــــــی استوارم!"

              دیدگاه


                #8
                پاسخ : مشکل در خواندن 8 تا ADC

                سلام .................

                اگه با C کار میکنید سینتکس شما عبارت میشه از ..

                read_adc() که توی پرانتز باید کانال مورد نظرتون رو قید کنید .. کانال چیه؟ همون پایه ای از پورت میکرو که به ADC اختصاص داده شده .. چجوری اختصاص داده شده؟ از منوی CodeWizard تنظیمش میکنیم .. چطور تنظیمش میکنیم؟ یه جستجو در سایت انجام بدید .. موفق باشید ..
                دوستان! مدتی کمتر به سایت میام ..

                دیدگاه


                  #9
                  پاسخ : مشکل در خواندن 8 تا ADC

                  این برنامه رو آماده داشتم

                  ADC با دقت 8 بیت و با فرکانس یادم نیست چقدر

                  هم رو LCD مینویسه هم رو پورت D

                  #include <mega32.h>
                  #include <delay.h>
                  #include <stdlib.h>
                  #include <stdio.h>

                  // Alphanumeric LCD Module functions
                  #asm
                  .equ __lcd_port=0x15 ;PORTC
                  #endasm
                  #include <lcd.h>

                  float input;

                  #define ADC_VREF_TYPE 0x60
                  // Read the 8 most significant bits
                  // of the AD conversion result
                  unsigned char read_adc(unsigned char adc_input)
                  {
                  ADMUX=adc_input|ADC_VREF_TYPE;
                  // Start the AD conversion
                  ADCSRA|=0x40;
                  // Wait for the AD conversion to complete
                  while ((ADCSRA & 0x10)==0);
                  ADCSRA|=0x10;
                  return ADCH;
                  }
                  char str[10];

                  void main(void)
                  {

                  PORTD=0x00;
                  DDRD=0xFF;

                  // ADC initialization
                  // ADC Clock frequency: 1000.000 kHz
                  // ADC Voltage Reference: AVCC pin
                  // Only the 8 most significant bits of
                  // the AD conversion result are used
                  ADMUX=ADC_VREF_TYPE;
                  ADCSRA=0x82;

                  lcd_init(16);
                  lcd_putsf("ADC Started"
                  input = 0b00001010;
                  PORTD = input;
                  delay_ms(1000);
                  while (1)
                  {
                  lcd_clear();
                  input=read_adc(0);
                  input=(input*5/256);
                  ftoa(input,2,str);
                  lcd_puts(str);
                  delay_ms(200);
                  PORTD = input;
                  };
                  }

                  دیدگاه


                    #10
                    پاسخ : مشکل در خواندن 8 تا ADC

                    سلام ..................

                    جناب اکبری ممنون .. اما یه نکته برای کار با ADC استفاده از رزولوشن 10 بیت خیلی به کوانتیزه شدن سیگنال کمک میکنه .. بنابر این ضریب distortion سیگنال برای بازیابی خیلی پایین میاد .. موفق باشید ..
                    دوستان! مدتی کمتر به سایت میام ..

                    دیدگاه

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