اطلاعیه

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