اطلاعیه

Collapse
No announcement yet.

تداخل وقفه ها

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

    تداخل وقفه ها

    سلام.
    در میکروکنترلر ATmega16 باید 20 بایت را از طریق سریال دریافت کنم و یک قطعه دیگر راه راه اندازی کنم مثلا یک بازر که با فرکانس2 تا 5 کیلوهرتز کار می کند.
    برای دریافت داده ها از وقفه UART استفاده کردم و برای بازر وقفه تایمر 2 را در زمان 200 میکروثانیه پیکربندی کردم.
    برد درست کار می کند ولی گاهی اوقات اطلاعات را درست دریافت نمی کند وقتی وقفه تایمر را غیرفعال می کنم درست می شود.ظاهرا چون وقفه تایمر 2 اولویت دارد این مشکل پیش می اید.
    نیاز به راهنمایی دوستان دارم چکار می شود کرد؟

    #2
    وقتی تابع وقفه فراخوانی می شود باید وقفه سراسری غیر فعال شود

    دستور asm("sei") برای فعال سازی وقفه سراسری در AVR و
    دستور asm("cli") برای غیر فعال سازی وقفه سراسری در AVR استفاده می شود ( کامپایلر codevision)

    دیدگاه


      #3
      نوشته اصلی توسط hoseinnet1 نمایش پست ها
      وقتی تابع وقفه فراخوانی می شود باید وقفه سراسری غیر فعال شود

      دستور asm("sei") برای فعال سازی وقفه سراسری در AVR و
      دستور asm("cli") برای غیر فعال سازی وقفه سراسری در AVR استفاده می شود ( کامپایلر codevision)
      ممنون ولی در اینصورت تایمری که صدای بازر را تولید می کند متوقف می شود

      دیدگاه


        #4
        کدنویسی رو بهبود بده یا اگر راه دیگه ای نداری از RTOS سبک برای AVR استفاده کن که هردو دو تا تیم رو همزمان اجرا کنی

        به نظرم کدنویسی رو میتونی بهبود بدی مثلاً uart رو بدون وقفه بنویس و داخل تابه وقفه بازار ارسال رو انجام بده

        دیدگاه


          #5
          نوشته اصلی توسط hoseinnet1 نمایش پست ها
          کدنویسی رو بهبود بده یا اگر راه دیگه ای نداری از RTOS سبک برای AVR استفاده کن که هردو دو تا تیم رو همزمان اجرا کنی

          به نظرم کدنویسی رو میتونی بهبود بدی مثلاً uart رو بدون وقفه بنویس و داخل تابه وقفه بازار ارسال رو انجام بده
          وقتی 20 بایت را ارسال کنم بلافاصله دستگاه دیگر 20 بایت را ارسال می کند که باید سریع دریافت بشه بعدش دوباره 20 بایت بفرستم این کار دایمی هست نمیشه بدون وقفه دریافت کرد.

          این پرووژه مخدسی معکوس برد المانی هست که خودش PIC سری 16f استفاده کرده بازر داده به پین PWM ارسال و دریافت اطلاعاتش همیشگی هست صدای بازر هم هست .

          دیدگاه

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