اطلاعیه

Collapse
No announcement yet.

درخواست راهنمایی و کمک در خصوص اجرای همزمان

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

    درخواست راهنمایی و کمک در خصوص اجرای همزمان

    سلام دوستان :nice: :nice: :nice:
    می خواستم درخواست کنم از دوسانی که اطلاعات کامل در خصوص برنامه نویسی C , Basic تحت کامپایلر Bascom , Codvision برای میکروکنترلرهای خانواده AVR دارند ، بنده را در خصوص اجرای همزمان چند برنامه یاری دهند . :nerd: :nerd: :nerd:
    به طور مثال عرض می کنم ، میکرو از نوع ATmega128 با کریستال خارجی 16MHZ
    یک قسمت از برنامه به صورت دائم ADC را چک کند و در متغیر مربوط بریزد
    یک قسمت تمام پین های پورت B را دائم چک کند (منظور فشرده شدن کلید است به صورت ورودی یک ) و متناظر با هر کلید یک پین از پورت دیگر را یک کند
    یک قسمت یک اطلاعات را از طریق I2C , SPI , Usart ارسال و دریافت کند و در متغیر مربوطه قرار دهد
    یک قسمت هم اطلاعات لازم را بر روی LCD کارکتری نمایش دهد
    یک قسمت هم کارهای معمول دیگر را انجام دهد ( do , loop اصلی )
    :read: :read: :read: :read:
    برنامه به صورت یکپارچه و به قولی Clean Code باشد که همه دوستان متوجه شوند .
    پیشاپیش از سایت وانجمن ECA و دوستانی که به سوالات پاسخ می دهند ممنونم :agree: :agree: :agree:

    #2
    پاسخ : درخواست راهنمایی و کمک در خصوص اجرای همزمان

    سلام.
    برای انجام این کار شما دو راه حل دارید،اول: از وقفه استفاده کنید به این معنی که وفقه هرکدام از امکانات رو فعال کنید.
    راه حل دوم استفاده از سیستم عامل های بلادرنگ مثل Micro c/OS می باشد که اگه بخواید از این استفاده بکنید باید از فکر کدویژن و ... بیاد بیرون و برید به سمت IAR
    توجه کنید که هرچه پردازنده قوی تر باشه اجرای سیستم عامل نرم تر میشه و امکانات بیشتری رو در اختیارتون قرار میده.
    لینک زیر یه مثال از Micro c با IAR هست:
    http://cdn.persiangig.com/download/AxAJieFd7h/Micrium-Atmel-uCOS-II-ATmega128.zip/dl
    اگه میخواید از سیستم عامل استفاده کنید پیشنهاد میکنم که در موردشون مطالعه کنید.
    [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

    دیدگاه


      #3
      پاسخ : درخواست راهنمایی و کمک در خصوص اجرای همزمان

      ممنونم از راهنماییتون
      من شنیده بودم با استفاده از وقفه ها و تایمر ها میشه هر کار رو به یکی از اونها سپرد و به تعداد تایمرها امکانش هست که حلقه داشته باشیم ، نمونه ای برای این حالت دارید ؟

      دیدگاه


        #4
        پاسخ : درخواست راهنمایی و کمک در خصوص اجرای همزمان

        شما با استفاده از وفقه میتونید به امورات خودتون سرکشی کنید، به عنوان مثال یک تایمر رو طوری تنظیم کنید که هر 10 میلی ثانیه یک وفقه بده و بره تو روتین مربوط به خودش یک سری عملیات رو انجام بده.و برای adc هم به این شکل(بعد از اتمام عملیات نمونه برداری وفقه بده و بره تو روتین مربوطه).
        توجه کنید که این کارها به صورت موازی انجام نمیشه؛مثلا وقتی که وفقه میاد برنامه اصلی میایسته و به روتین پرش میکنه و بعد از انجام عملیات روتین به جای که ایستاده بود برمیگرده.
        [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

        دیدگاه


          #5
          پاسخ : درخواست راهنمایی و کمک در خصوص اجرای همزمان

          با این صحبتا پس راه حلی برای اجرای همزمان یا موازی در میکروکنترلرهای AVR-8Bit وجود نداره ؟

          دیدگاه


            #6
            پاسخ : درخواست راهنمایی و کمک در خصوص اجرای همزمان

            چرا، وجود داره با استفاده از همون سیستم عاملی که معرفی کردم.
            اما دیگه نباید انتظار زیادی ازش داشت.
            خودتون هم می تونید همین کار سیستم عامل رو انجام بدید که کار راحتی نیست.
            [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

            دیدگاه


              #7
              پاسخ : درخواست راهنمایی و کمک در خصوص اجرای همزمان

              بسیار عالی و ممنونم از راهنماییتون

              دیدگاه

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