اطلاعیه

Collapse
No announcement yet.

راهنمایی درباره ی یک مدار فرمان

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

    راهنمایی درباره ی یک مدار فرمان

    باسلام به تمام استادان عزیز . من در حال حاضر در حال طراحی یک مدار فرمان برای یک دستگاه پرس هستم تقریبا 90 در صد کار رو انجام دادم اما در ادامه به یک مشکل ساده بر خوردم که در عین سادگی نمیتونم با هاش کنار بیام . مشکلم یک مشکل نرم افزاریه سعی میکنم خیلی ساده بیانش کنم .
    میخواستم بدونم وقتی در برنامه بسکام از دستور wait استفاده میکنیم . در زمانی که برنامه در این دستور متوقف شده چه گونه ممکن است از یک متغیر دیگر همزمان نمونه گیری کنیم . مثلا به صورت خیلی ساده به برنامه زیر دقت کنید
    set portc.0
    wait 2
    reset portc.0
    چگونه در این قسمت هر 1 میلی ثانیه از صفر یا یک بودن یک pin نمونه گیری کنیم .چون در قسمت wait 2 برنامه 2 ثانیه متوقف شده
    امیدوارم منظورمو رسونده باشم . لطفا سریع کمک کنید چون تا جمعه عصر بیشتر وقت ندارم. با تشکر:angry:
    موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

    #2
    پاسخ : راهنمایی درباره ی یک مدار فرمان

    خوب از اینتراپت استفاده کن !

    دیدگاه


      #3
      پاسخ : راهنمایی درباره ی یک مدار فرمان

      میشه یه کم توضیح بدید چون نمیخوام از تایمرام استفاده کنم چون همه در گیره یه قسمت دیگند.(منظورم استفاده از اینتراپت های خارجیه .چگونه مشکلمو باهاش حل کنم اصلا ممکن هست )
      موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

      دیدگاه


        #4
        پاسخ : راهنمایی درباره ی یک مدار فرمان

        آقا فرشاد دستت درد نکنه مشکلم حل شد (جرقه رو زدی) :wow:
        موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

        دیدگاه


          #5
          پاسخ : راهنمایی درباره ی یک مدار فرمان

          من با یک مشکل دیگه برخورد کردم :angry: :angry: وقتی یک وقفه خارجی فعال شد مثلا int0 چه جوری وقتی یک وقفه خارجی دیگه مثلا int1 رو فعال کردم زیر برنامه int0 رو متوقف کنم . مثلا در زیر برنامه ی وقفه ی خارجی صفر دستور wait 2 رو زدم حالا وسط همین 2ثانیه میخوام وقفه خارجی یکو فعال کنم . ولی چون وقفه صفر هنوز درگیره وقفه ی یک کار نمیکنه . :cry2: :cry2:
          موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

          دیدگاه


            #6
            پاسخ : راهنمایی درباره ی یک مدار فرمان

            مشکلمو در برنامه زیر توضیح میدم:
            config int0=falling
            enable intrrupts
            inable int0
            on into m1

            config int1=falling
            enable intrrupts
            inable int1
            on int1 m2

            m1:
            set portc.0
            wait 2
            reset port c.0
            return

            m2:
            reset portc.0
            return
            در پروتوس وقتی وقفه صفر فعال میشه ودر حال گزروندن 2 ثانیه ست با فعال کردن وقفه یک دستور reset portc.0 کارنمیکنه
            چه طوری این مشکلو حل کنم :cry2:
            موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

            دیدگاه


              #7
              پاسخ : راهنمایی درباره ی یک مدار فرمان

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

              دیدگاه


                #8
                پاسخ : راهنمایی درباره ی یک مدار فرمان

                شهریار جان دستور wait 2تو زیر برنامه وقفه صفر باعث میشه حلقه 2 ثانیه متوقف بشه و نمونه گیری از پایه ایی که شما گفتی متوقف بشه ودچار همون مشکل اول بشم .اصلا برای این از وقفه های خارجی استفاده کردم که دستور wait تو برنامه اصلی رو بشکونم. :angry:
                موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

                دیدگاه


                  #9
                  پاسخ : راهنمایی درباره ی یک مدار فرمان

                  من از بسکام سر در نمیارم ولی میتونین بجای مکث 2 ثانیه ای توی یک حلقه مثلا بیست بار مکث 0.2 ثانیه ای داشته باشین و لابلای اونا کارای باقی مونده (مثل چک یه پین دیگه ) رو انجام بدین

                  دیدگاه


                    #10
                    پاسخ : راهنمایی درباره ی یک مدار فرمان

                    من میگم به جای Wait از حلقه استفاده کنید و حساب کنید ببینید چقدر حدودا هر دستور زمان میبره و شرط اجرا شدن حلقه رو دو چیز بزارید:
                    1- تغییر نکردن وضعیت پایه
                    2- کمتر بودن مقدار متغیر مربوط به حلقه که البته به این فکر کنم نیازی نباشه
                    اگر این دو شرط درست باشه حلقه دو ثانیه وقت میگیره و بعد تموم میشه اگر نه از حلقه خارج میشه
                    واضح نیست؟
                    نوشته اصلی توسط mahziyar
                    من با یک مشکل دیگه برخورد کردم :angry: :angry: وقتی یک وقفه خارجی فعال شد مثلا int0 چه جوری وقتی یک وقفه خارجی دیگه مثلا int1 رو فعال کردم زیر برنامه int0 رو متوقف کنم . مثلا در زیر برنامه ی وقفه ی خارجی صفر دستور wait 2 رو زدم حالا وسط همین 2ثانیه میخوام وقفه خارجی یکو فعال کنم . ولی چون وقفه صفر هنوز درگیره وقفه ی یک کار نمیکنه . :cry2: :cry2:
                    نوشته اصلی توسط mahziyar
                    شهریار جان دستور wait 2تو زیر برنامه وقفه صفر باعث میشه حلقه 2 ثانیه متوقف بشه و نمونه گیری از پایه ایی که شما گفتی متوقف بشه ودچار همون مشکل اول بشم .اصلا برای این از وقفه های خارجی استفاده کردم که دستور wait تو برنامه اصلی رو بشکونم. :angry:
                    من آخرش نفهمیدم چی میخواهید اگر میخواهید تو برنامه اصلی باشه خوب این کار رو برای برنامه اصلی بکنید
                    برای اندازه گیری سرعت هم AVRStudio فکر کنم بشه ازش استفاده کرد ولی فکر نکنم BASIC رو شبیه سازی کنه و باید از اسمبلی کدی که نوشتید استفاده کنید با یکم سعی و خطا دستتون میاد

                    دیدگاه


                      #11
                      پاسخ : راهنمایی درباره ی یک مدار فرمان

                      شهریار جان این روشی که میگی درسته منم به فکرش بودم اما دستور wait ثابت نیست بلکه یه متغیره که با ولوم تنظیم میشه . درزمن چندین پایه باید چک بشه حالا جیکارکنم :cry2:
                      موفقیت بدست آوردن چیزیست که دوست داری و خوشبختی دوست داشتن چیزیست که بدست آوردهآ‌ای.

                      دیدگاه


                        #12
                        پاسخ : راهنمایی درباره ی یک مدار فرمان

                        شما به دیتاشیت این میکروی Tiny 2313 یه نگاه بندازید یه بخشی داره به اسم PCINT ببینید به کارتون میاد؟

                        دیدگاه

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