اطلاعیه

Collapse
No announcement yet.

انجام دو عمل جداگانه توسط میکرو

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

    انجام دو عمل جداگانه توسط میکرو

    می خوام میکروم 2تا کارو جداگانه انجام بده ! البته نه به طور همزمان . میخوام اگر پورت b.0 یک بود بره سراغ خوندن از mmc و زمانی که این پورت 0 شد . بره سراغ نوشتن از mmc . تا اینجاش ساده است ولی مشکل من این تیکه هست . می خوام یه جورایی مثل وقفه باشه . یعنی هر بار نمی خوام پورت b.0 را چک کنم . میخوام خوندنو ادامه بده تا زمانی که این پورت 1 هست . به محض اینکه پورت 0 شد بنویسه رو رم و دوباره تازمانی که پورت 1 شد برگرده سر خوندن .
    دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

    #2
    پاسخ : انجام دو عمل جداگانه توسط میکرو

    خوب دوست من از اینتراپت های میکرو استفاده کن. :job:
    چیزی را بگو که بتوانی بنویسی
    چیزی را بنویس که بتوانی امضا کنی
    چیزی را امضا کن که بتوانی به آن عمل کنی (ناپلئون)

    دیدگاه


      #3
      پاسخ : انجام دو عمل جداگانه توسط میکرو

      این کار با اینتراپت خیلی منطقی تره وگرنه بزار تو main اصلی تو while هر وقت صفر یا یک شد کارشو انجام بده..
      تو این جهان 7 میلیاردی من معنی ندارد و اگه تو این دنیا فقط 1 نفر وجود داشت باز هم من معنی نداشت

      دیدگاه


        #4
        پاسخ : انجام دو عمل جداگانه توسط میکرو

        اون چیزی که شما لازم داری بهش میگن interrupt on change که هبنظر میرسه همه تراشه های AVR ندارند و فکر میکنم اینا دارند
        Tiny2313, Mega48/88/168//328/644

        دیدگاه


          #5
          پاسخ : انجام دو عمل جداگانه توسط میکرو

          ممنون . من تا حالا با اینتراپت ها کار نکردم ؟

          میتونید با بسکام یک مثل ساده ای بزنید ؟
          من atmega 128a کار می کنم.
          دنیا بر پایه برنامه هایی هست که خدا با زبان برنامه نویسی خودش مینویسد . کامپایل شده آن این جهان و قوانین آن است . start آن تولد است و end آن مرگ . پر از گزینه های شرطی و دستورات حلقه و تکرار ...

          دیدگاه


            #6
            پاسخ : انجام دو عمل جداگانه توسط میکرو

            همونطور که دوستان گفتن حتما باید از وقفه استفاده کنی
            اول وقفه رو بصورت اینکه اگه یک شد وقفه فعال بشه کانفیگ کن و بعد از اینکه این وقفه فعال شد تو روتین وقفه یه متغییر رو تغییر بعدش تو روال برنامه با تغییر این متغییر کار مورد نظر رو انجام بده
            زمانی که تو روتین وقفه هستی وقفه رو با حالت بعدی کانفیگ کن و منتظر اینتراپت بعدی بشو
            نمی دونم منظورم رو خوب گفتم یا نه؟ اما با این کار می تونی به منظورت برسی
            وقفه تغییر وضعیت ممکنه در حین کار با مشکل مواجهت کنه و کار رو بر عکس انجام بده :agree:
            همیشه به یاد خدا باش !

            دیدگاه


              #7
              پاسخ : انجام دو عمل جداگانه توسط میکرو

              دوست عزیز من بیسیک بلد نیستم اما اگه خواستی با کدویژن بنویسی بگو من در خدمتم
              چیزی را بگو که بتوانی بنویسی
              چیزی را بنویس که بتوانی امضا کنی
              چیزی را امضا کن که بتوانی به آن عمل کنی (ناپلئون)

              دیدگاه


                #8
                پاسخ : انجام دو عمل جداگانه توسط میکرو

                بسم رب شهدا
                خب شما دارید از اتمگا 128 استفاده میکنید این ای سی دارای 4 وقفه روی پایه های 25-26-27-28 دارید.

                config int0=falling
                enable interrupts
                enable int0
                on int0 ali
                do
                دستور خواندن
                loop
                end

                :ali
                دستور نوشتن
                return

                falling برای لبه پایین رونده است یعنی پایه 25 که وقفه int0 هست باید به طور عادی یک باشد و با صفر شدن وقفه اتفاق می افتد برای برعکس کردن میتوان rising نوشت.
                بقیه برنامه هم فکر کنم واضح هست اگه مشکلی بود بگو. :arrow:
                الکترونیک همه کاره دنیا

                دیدگاه

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