اطلاعیه

Collapse
No announcement yet.

مولتی تسکینگ در میکرو

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

    مولتی تسکینگ در میکرو

    سلام
    من می خوام تو بیسکام دوتا کار همزمان انجام بدم یعنی مثلا همزمان که منتظر دریافت کاراکتر از keypad هست یه دستوراتی رو هم انجام بده
    یه چیز تو مایه های thread تو کامپیوتر

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

    نه دوست عزیز دستورات پشت سر هم اجرا می شن با سرعت کریستال

    دیدگاه


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

      اصلا کار سختی نیست
      کی پد رو نباید مدام بخونی اینجوری نویزشم زیاد میشه کی پد رو هر 25 میلی ثانیه بخونی کافیه در این بین میکرو میتونه هزار تا کار دیگه هم انجام بده
      بازم کمک خواستی بگو
      موفق باشی

      دیدگاه


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

        نوشته اصلی توسط baby_tanhaa
        سلام
        من می خوام تو بیسکام دوتا کار همزمان انجام بدم یعنی مثلا همزمان که منتظر دریافت کاراکتر از keypad هست یه دستوراتی رو هم انجام بده
        یه چیز تو مایه های thread تو کامپیوتر
        می توانید از وقفه ها استفاده کنید هر زمان که سیگنالی به پایه مورد نظر میکرو وارد شد اجرای برنامه متوقف و به قسمت پاسخگویی به وقفه منتقل میشود
        interrupt = وقفه
        برای اطلاعات بیشتر به برگه اطلاعاتی (ِdatasheet ) میکروی مورد نظر مراجعه کنید و یا به راهمای برنامه بسکام مراجعه کنید

        دیدگاه


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

          مثل اینکه منظورمو نرسوندم من می خوام مثلا وقتی دستور getkbd یا input یا ... دادم تا ابد منتظر دریافت کاراکتر نمونه و بعد یه مدت بره یه کار دیگه انجام بده . فکر کنم باید از وقفه یا تایمر استفاده بشه اگه اشتباه نکنم با این حال من اینم بلد نیستم لطفا راهنماییم کنید

          دیدگاه


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

            خیلی وقته با بیسکام کار نکردم ولی تا جایی که یادمه اگه دستور getkbd بدی تا ابد منتظر نمونه و اکه فشار داده شده باشه کدشو نه که یا 00 یا ff میده

            دیدگاه


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

              keypad فقط یه مثال بود :sad:
              میشه یکی کار با وقفه نرم افزاری رو تو میکرو به من بگه :sad:

              دیدگاه


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

                خوب من چیزی به اسم وقفه نرم افزاری نشنیدم
                همونطور که گفتید از وقفه تایمر می توانید برای زمان بندی و تقسیم زمان بین قسمت های مختلف برنامه استفاده کنید که نوعی RTOS به حساب می اید
                کل برنامه به قطعه هایی تبدیل می کنیم تایمر بعد از سر ریز شدن یک وقفه سخت افزاری تولیدمی کند و اجرای یک قطعه از برنامه متوقف و قطعه دیگر اجرا می شود
                البته سرعت کلی اجرای برنامه ها پایین می اید

                دیدگاه


                  #9
                  پاسخ : مولتی تسکینگ در میکرو

                  سلام
                  حاجی خدمتت باید بگم که وقفه نرم افزاری مال 16 بیتی به بالاست. این میکروهای 8 بیتی ندارن :biggrin:
                  نتیجتا یا باس میکروتو عوض کنی یا بایستی تمام برنامه ها تو با اینترابت تایمر ها بنویسی!
                  یا علی.

                  دیدگاه


                    #10
                    پاسخ : مولتی تسکینگ در میکرو

                    نوشته اصلی توسط omiga
                    سلام
                    حاجی خدمتت باید بگم که وقفه نرم افزاری مال 16 بیتی به بالاست. این میکروهای 8 بیتی ندارن :biggrin:
                    نتیجتا یا باس میکروتو عوض کنی یا بایستی تمام برنامه ها تو با اینترابت تایمر ها بنویسی!
                    یا علی.
                    سلام،

                    اگرچه AVR دستورالعمل SWI یا وقفه ی نرم افزاری نداره اما اگر پایه ی وقفه ی خارجی رو به صورت خروجی تنظیم کنید و روی رجیستر PIN بنویسید می تونید وقفه ی نرم افزاری ایجاد کنید. البته این مسئله ربطی به موضوع این تاپیک نداره و فقط خواستم عرض کنم با 8 بیتی هم می تونید وقفه ی نرم افزاری داشته باشید.

                    There is nothing so practical as a good theory. — Kurt Lewin, 1951

                    دیدگاه


                      #11
                      پاسخ : مولتی تسکینگ در میکرو

                      سلام
                      برای عبور از input یا inputbin باید از دستور timeout$ استفاده کنی و getkbd هم که فقط یه لحظه پورت رو می خونه و مشکلی نداره
                      مثلا
                      کد:
                      Dim a as byte
                      
                      $timeout=100000
                      inputbin a

                      دیدگاه


                        #12
                        پاسخ : مولتی تسکینگ در میکرو

                        استفاده از وقفه خارجی پایه های INT میکرو
                        برای فعال کردن
                        CONFIG INTx=state
                        x=شماره وقفه(از کدامش استفاده میکنی)
                        state=سه تا حالت میتونی جاش بزاری
                        1)اگر پالس یک تبدیل به صفر شود=FALLING
                        2)اگر پالس صفر تبدیل به یک شود=RISING
                        3)اگرپالس صفر اعمال شود=LOW LEVEL
                        بادستور
                        ENABLE INTERRUPTS
                        تمام وقفه ها و با
                        ENABLE INTx
                        وقفه مورد نظر فعال میشود
                        با دستور
                        ON INTx lable
                        به lable مورد نظر هنگام اعمال پالس پرش میکند
                        وبا دستور RETURN بر میگردد
                        وقفه در هر زمانه عمل میکند

                        دیدگاه

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