NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 4412 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 5 از 5

موضوع: مشکل در قراردادن خروجي adc در يک آرايه 128 تايي

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2011
    نوشته ها
    77
    تشکر
    46
    تشکر شده 29 بار در 26 پست

    پیش فرض مشکل در قراردادن خروجي adc در يک آرايه 128 تايي

    سلام به همگي

    من ميخوام يک برنامه بنويسم که در قسمتي از آن برنامه خروجي ADC که در مد Single کار ميکنه از طريق وقفه شماره 12 يا همون Adc complete يک آرايه 128 تايي رو پر کنه... به اين صورت که در روتين وقفه و در دفعه اول که ADC انجام شد عضو اول آرايه و در بار دوم عضو دوم آرايه و .... در بار 128 ام عضو 128 آرايه برابر با ADCW بشه و سپس اين کار دوباره تکرار بشه....

    روتين وقفه اي که من تو نوشتنش گير کردم يه چيزي مثل اين هست:

    کد:
    interrupt [12] void adccomplete (void)
    {
    for(i=0;i<128;i++){
    
    x = adcw;
    A[i]=x;
    ADCSRA|=40;
    }
    من ميخوام ADC در مد single کار کنه و مقدار رجيستر ADCW که شامل ADCH , ADCL هست برابر با يک عدد صحيح بشه و اين عدد صحيح هربار در يک عضو آرايه قرار بگيره و بره جلو و از طرفي عمليات ADC هم متوفق نشه...!!

    تو کتاب آقاي پرتوي فر نوشته بود براي شروع مجدد ADC از دستور ADCSRA|=40; استفاده کنيم... خودم فکر ميکنم اين عبارت بايد با 80 هگز OR بشه نه 40 ...!! نظر شما چيه..؟

    يه کمکي بکنيد بتونم آرايه ام رو بطور متوالي با ADCW پر کنم....

    ممنونم

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2
    کاربر فعال sajjad_AD آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    سجاد
    نوشته ها
    307
    تشکر
    336
    تشکر شده 471 بار در 181 پست

    پیش فرض

    سلام
    واسه اين کار که نميشه تو روتين وقفه از حلقه ي for استفاده کرد
    شما متغيير شمارندت حتما عمومي باشه يا تو زيربرنامه وقفه به صورت استاتيک تعريفش کن.
    واسه ي مشخص کردن 128 نمونه در 128 وقفه بايد از عملگر هاي شرطي استفاده کني روش فکر کن...
    موفق باشي
    ویرایش توسط sajjad_AD : 30-03-2012 در ساعت 12:23

  4. تشکرها از این نوشته :


  5. #3
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    نقل قول نوشته اصلی توسط roberty نمایش پست ها
    من ميخوام adc در مد single کار کنه و مقدار رجيستر adcw که شامل adch , adcl هست برابر با يک عدد صحيح بشه
    سلامم مهندس
    مهندس adcw يه عدد 16 بيتي هست. حواستون به اين موضوع هست كه.
    فقط خواستم يادآوري كنم!
    _____________________________________
    _____________________________________

  6. تشکرها از این نوشته :


  7. #4
    کاربر علاقه مند
    تاریخ عضویت
    Aug 2011
    نوشته ها
    77
    تشکر
    46
    تشکر شده 29 بار در 26 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    سلامم مهندس
    مهندس adcw يه عدد 16 بيتي هست. حواستون به اين موضوع هست كه.
    فقط خواستم يادآوري كنم!
    بله ... متوجه ام...

    این عدد 16 بیتی که بعد از هر بار تبدیل در یکی از خانه های آرایه قرار میگیره...

  8. #5
    کاربر فعال sajjad_AD آواتار ها
    تاریخ عضویت
    Aug 2009
    نام
    سجاد
    نوشته ها
    307
    تشکر
    336
    تشکر شده 471 بار در 181 پست

    پیش فرض

    این کد :
    کد:
    interrupt [12] void adccomplete (void) {
    
      x = ADCW;
      ADCSRA|=40;
    
      if(i<128) {
        
        i++;
        A[i] = x;
      }
    }
    تو حلقه اصلی برنامه هم باید باید این کار رو بکنی :
    کد:
      if(i==128) {
    
        i = 0;
        //Your Code
      }

  9. کاربران : 2 تشکر کرده اند از شما sajjad_AD برای ارسال این پست سودمند:


موضوعات مشابه

  1. پاسخ: 6
    آخرين نوشته: 06-01-2013, 13:53
  2. رونمايي رايانه‌ي لوحي rim
    توسط M3R در انجمن اخبار کامپیوتر و IT و مسابقات رباتیک
    پاسخ: 1
    آخرين نوشته: 30-09-2010, 12:57
  3. راهنمايي
    توسط vahidasm در انجمن FPGA
    پاسخ: 5
    آخرين نوشته: 22-05-2010, 18:33
  4. من نياز به راهنمايي و كمك دارم لط
    توسط rejina84 در انجمن مقالات،آموزش هاوپایان نامه ها
    پاسخ: 2
    آخرين نوشته: 08-03-2009, 16:43

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •