اطلاعیه

Collapse
No announcement yet.

سوال AVR در مورد نحوه خواندن سنسور با اینتراپت ADC

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

    سوال AVR در مورد نحوه خواندن سنسور با اینتراپت ADC

    سلام
    من یک پروژه دارم که باید تو اون مقدار یک سنسور رو بخونم و روی ال سی دی نمایش بدم
    چطوری میتوننم از interupt داخل ADC و دستور adc_data=ADCW استفاده کنم

    لطفا کمکم کنید :cry:

    #2
    پاسخ : سوال AVR در مورد نحوه خواندن سنسور با اینتراپت ADC

    کسی نیس کمکم کنه عایا؟

    دیدگاه


      #3
      پاسخ : سوال AVR در مورد نحوه خواندن سنسور با اینتراپت ADC

      سلام.
      شما باید ابتدا تابع وقفه ADC رو تعریف کنی.
      حالت کلیش به شکل زیر هستش :
      interrupt [ADC_INT] void adc_isr (void)
      }
      برنامه یا زیر روال سرویس وقفه;
      {
      ADC_INT نام معادل هستش که برای ADC استفاده میشه. از شماره بردار هم میشه استفاده کرد که شماره برداره مربوطه 15 و آدرس برنامه اون 01C$ هستش.
      adc_isr نامی هستش که برای تابع انتخاب میشه. ( من این رو انتخاب کردم )
      زیر روال وقفه هم برنامه ای هستش که جهت انجام عملیات روی داده در وقفه صورت میگیره.

      داخل روتین وقفه ( داخل همون تابع ) باید عملیات اجرایی روی داده خوانده شده رو انجام بدی.

      داخل حلقه بی نهایتت هم خواندن از ADC رو انجام بدی.(فعال کردن ADC)
      //
      اگر فرض کنیم که داخل حلقه بی نهایت باشیم با کامل شدن عملیات ADC ( تبدیل ) ، بیت مربوط به پرچم کامل شدن تبدیل تغییر وضعیت میده ( فک کنم 1 میشه ) و برنامه به روتین اینتراپت وقفه میپره. در اونجا داده ای که خوانده شده توسط دستوری که نوشتید ( adc_data=ADCW ) ، از ADCW به adc_data منتقل میشه و ...
      بعد از اتمام روتین وقفه برنامه دوباره به محلی برمیگرده که از اونجا وقفه اعمال شده بوده و ....
      //
      میتونید بدون استفاده از وقفه ADC هم عملیات کار با ADC رو انجام بدید.
      اگر اطلاعات بیشتر میخاید باید در مورد کارکرد رجیستر های ADC تحقیق کنید.

      دیدگاه

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