اطلاعیه

Collapse
No announcement yet.

مشکل اتصال کلید به میکرو

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

    مشکل اتصال کلید به میکرو

    سلام به همه دوستان
    من یه مشکل عجیب دارم که نمیدونم از کجا ناشی میشه
    و اون اینه
    من میخوام وقتی دوتا کلید رو باهم فشار بدم اینتراپت من فعال بشه و وارد روتین بشم و روتین که انجام بشه برنامه به بدنه اصلی برگرده به همین سادگی
    اما من وقتی دو تا کلید رو با هم فشار میدم وارد روتین میشم ولی وقتی روتین انجام میشه دوباره وارد روتین میشه و دوباره روتین رو انجام میده ولی بار سوم به برنامه اصلی بر میگرده
    میخواستم ببینم اشکال کجاست چرا یکبار انجام نمیشه ؟؟؟؟
    من برای اینکار دوکلید رو به گیت and دادم و خروجی گیت رو دادم به اینتراپت لازمه بدونید که پول داون رو هم رعایت کردم اینتراپت هم با لبه بالا رونده تحریک میشه بخاطر همین در حالت عادی کلید ها و پایه رو پول داون کردم
    خواهشا کمکم کنید بیچارم کرده هیچ دلیلی واسش پیدا نمیکنم :angry: :angry:
    البته باید اینم بگم که توی پروتثوس کاملا درست جواب میده
    ولی نمیدونم توی عمل چرا اینجوریه؟؟؟؟

    #2
    پاسخ : مشکل اتصال کلید به میکرو

    نوشته اصلی توسط italia2006
    سلام به همه دوستان
    من یه مشکل عجیب دارم که نمیدونم از کجا ناشی میشه
    و اون اینه
    من میخوام وقتی دوتا کلید رو باهم فشار بدم اینتراپت من فعال بشه و وارد روتین بشم و روتین که انجام بشه برنامه به بدنه اصلی برگرده به همین سادگی
    اما من وقتی دو تا کلید رو با هم فشار میدم وارد روتین میشم ولی وقتی روتین انجام میشه دوباره وارد روتین میشه و دوباره روتین رو انجام میده ولی بار سوم به برنامه اصلی بر میگرده
    میخواستم ببینم اشکال کجاست چرا یکبار انجام نمیشه ؟؟؟؟
    من برای اینکار دوکلید رو به گیت and دادم و خروجی گیت رو دادم به اینتراپت لازمه بدونید که پول داون رو هم رعایت کردم اینتراپت هم با لبه بالا رونده تحریک میشه بخاطر همین در حالت عادی کلید ها و پایه رو پول داون کردم
    خواهشا کمکم کنید بیچارم کرده هیچ دلیلی واسش پیدا نمیکنم :angry: :angry:
    البته باید اینم بگم که توی پروتثوس کاملا درست جواب میده
    ولی نمیدونم توی عمل چرا اینجوریه؟؟؟؟
    لطفا شماتیک بزار
    [glow=red,2,300]تاپیک های ایجاد شده[/glow]

    دیدگاه


      #3
      پاسخ : مشکل اتصال کلید به میکرو

      سلام
      راستش بلد نیستم اینجا عکس بذارم
      واقعا مدارش آخه چیزی نداره
      دوتا کلید فشاری به پایه های گیت and وصله و خرجی
      گیت به اینتراپت میکرو وصله
      همین و وسلام
      اخه چیزی دیگه نداره که مدارشو لازم باشه بزارم

      دیدگاه


        #4
        پاسخ : مشکل اتصال کلید به میکرو

        نوشته اصلی توسط italia2006
        سلام به همه دوستان
        من یه مشکل عجیب دارم که نمیدونم از کجا ناشی میشه
        و اون اینه
        من میخوام وقتی دوتا کلید رو باهم فشار بدم اینتراپت من فعال بشه و وارد روتین بشم و روتین که انجام بشه برنامه به بدنه اصلی برگرده به همین سادگی
        اما من وقتی دو تا کلید رو با هم فشار میدم وارد روتین میشم ولی وقتی روتین انجام میشه دوباره وارد روتین میشه و دوباره روتین رو انجام میده ولی بار سوم به برنامه اصلی بر میگرده
        میخواستم ببینم اشکال کجاست چرا یکبار انجام نمیشه ؟؟؟؟
        من برای اینکار دوکلید رو به گیت and دادم و خروجی گیت رو دادم به اینتراپت لازمه بدونید که پول داون رو هم رعایت کردم اینتراپت هم با لبه بالا رونده تحریک میشه بخاطر همین در حالت عادی کلید ها و پایه رو پول داون کردم
        خواهشا کمکم کنید بیچارم کرده هیچ دلیلی واسش پیدا نمیکنم :angry: :angry:
        البته باید اینم بگم که توی پروتثوس کاملا درست جواب میده
        ولی نمیدونم توی عمل چرا اینجوریه؟؟؟؟
        راستش من خیلی سوادم کامل نیست ولی نمیدونم شما چرا مقاومت پول داون گذاشتین؟؟؟
        ببینین فقط آی سی های TTL که خروجی Open collector دارن نیازه که مقاومت Pull up بهشون وصل بشه و گرنه همیشه مسیر به زمین یا VCC وجود داره
        درباره مشکل شما
        وقتی به روتین وقفه میری وقفه ها غیر فعال میکنی و در اخر هم پرچم وقفه پاک میکنی؟

        [glow=red,2,300]تاپیک های ایجاد شده[/glow]

        دیدگاه


          #5
          پاسخ : مشکل اتصال کلید به میکرو

          وقفه رو هم غیر فعال میکنم ولی بازم اینطوری میشه

          دیدگاه


            #6
            پاسخ : مشکل اتصال کلید به میکرو

            نوشته اصلی توسط italia2006
            وقفه رو هم غیر فعال میکنم ولی بازم اینطوری میشه
            با سلام
            1-جدول اولویت وقفه هارو ببین، اگر با تایمر همکار میکنی اینطوری میشه ، واسه خود منم این مشکل هفته پیش بوده ، اما با تغییرات در جدول اولویت وقفه ها میتونی تغییرات رو لحاظ کنی
            2-من بسکام می نویسم و از دستور RETURN حتما باید درست استفاده کنی و الا خوب جواب نمیده
            3-با چند تا LED می تونی برنامتو چک کنی و ببینی دقیقا کدوم خط گیر داره ، برای قسمت های مختلف از روشن و خاموش کردن اونا متوجه میشه که دستوراتت کجاش دارای مشکل هست
            4-ممکنه برنامتو بزار تا ببینیم چی نوشتی
            وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

            دیدگاه


              #7
              پاسخ : مشکل اتصال کلید به میکرو

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


              Seting:



              Cls

              Reset Portd.4
              Reset Porta.1
              Waitms 500

              A1 = 0
              A2 = 0
              A0 = 0

              Locate 1 , 1 : Lcd "Enter the Values"
              ''''''''&# 039;'''''''&#03 9;'''''''

              Ii = 1
              Do
              Arm(ii) = Ii - 1
              Incr Ii
              Loop Until Ii = 11
              Ii = 1

              Wait 2




              ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' ''''''''&# 039;'''''''&#03 9;'''''''' '''''
              Cls

              Locate 1 , 1 : Lcd "DeltaM=00.0 m"
              Locate 2 , 1 : Lcd "Length=000 m"
              Locate 3 , 1 : Lcd "P(out)=0.0 Bar"
              Locate 4 , 1 : Lcd "Dif(P)=0.00 Bar"


              Yy = 8
              Xx = 1

              Locate Xx , Yy
              Cursor Blink



              Do
              Locate Xx , Yy
              Debounce Pind.6 , 1 , Up , Sub
              Debounce Pind.7 , 1 , Down , Sub
              Debounce Pind.5 , 1 , Enter , Sub


              If Xx = 4 And Yy = 13 Then

              Exit Do
              End If

              Loop



              Cls
              Cursor Off Noblink
              Locate 1 , 1 : Lcd "D="
              Locate 1 , 3 : Lcd Fusing(depth , "#.#&quot
              Locate 1 , 9 : Lcd Time$
              Locate 2 , 1 : Lcd "P="
              Locate 2 , 3 : Lcd Fusing(pressure2 , "#.##&quot
              Locate 2 , 9 : Lcd Time$
              Locate 3 , 1 : Lcd Date$
              Locate 4 , 1 : Lcd "DP="
              Locate 4 , 4 : Lcd Fusing(depthani , "#.#&quot
              Locate 4 , 16 : Lcd "m"
              Set Porta.1

              Waitms 500

              Return

              Up:

              Incr Ii
              If Ii = 11 Then
              Ii = 1
              Locate Xx , Yy : Lcd Arm(ii)
              Else
              Locate Xx , Yy : Lcd Arm(ii)
              End If
              Return

              Down:

              Decr Ii
              If Ii = 0 Then
              Ii = 10
              Locate Xx , Yy : Lcd Arm(ii)
              Else
              Locate Xx , Yy : Lcd Arm(ii)
              End If
              Return



              Enter:

              If Xx = 1 And Yy = 8 Then
              A2 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 9
              Return
              End If



              If Xx = 1 And Yy = 9 Then
              A1 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 11
              Return
              End If


              If Xx = 1 And Yy = 11 Then
              A0 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 12
              Return
              End If


              If Xx = 1 And Yy = 12 Then

              V1 = A1 * 1
              V2 = A2 * 10
              V3 = A0 * 0.1
              Ae = V1
              Aa = Ae + V2
              Aaa = Aa + V3
              Dp = Aaa
              Writeeeprom Dp , Ar1(1)
              Waitms 10

              Xx = 2
              Yy = 8
              Locate Xx , Yy
              Return
              End If



              If Xx = 2 And Yy = 8 Then
              A2 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 9
              Return
              End If

              If Xx = 2 And Yy = 9 Then
              A1 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 10
              Return
              End If


              If Xx = 2 And Yy = 10 Then
              A0 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 11
              Return
              End If


              If Xx = 2 And Yy = 11 Then
              V0 = A0
              V1 = A1 * 10
              V2 = A2 * 100
              Ae = V0 + V1
              A = Ae + V2

              Writeeeprom A , Ar1(2)
              Waitms 10

              Xx = 3
              Yy = 8
              Locate Xx , Yy
              Return
              End If

              If Xx = 3 And Yy = 8 Then
              A1 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 10
              Return
              End If


              If Xx = 3 And Yy = 10 Then
              A0 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 11
              Return
              End If


              If Xx = 3 And Yy = 11 Then

              V0 = A0 * 0.1
              V1 = A1 * 10
              Pi = V0 + V1

              Writeeeprom Pi , Ar1(3)
              Waitms 50

              Xx = 4
              Yy = 10
              Locate Xx , Yy
              Return
              End If

              If Xx = 4 And Yy = 10 Then
              H1 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 11
              Return
              End If



              If Xx = 4 And Yy = 11 Then
              H0 = Arm(ii)
              Ii = 1
              Locate Xx , Yy
              Yy = 12
              Return
              End If

              If Xx = 4 And Yy = 12 Then
              V1 = H0 * 0.01
              V2 = H1 * 0.1
              Qp = V1 + V2

              Writeeeprom Qp , Ar1(4)
              Waitms 10

              Xx = 4
              Yy = 13
              Locate Xx , Yy
              Return
              End If

              دیدگاه


                #8
                پاسخ : مشکل اتصال کلید به میکرو

                سلام به اساتید محترم
                چیزی به ذهنتون نمیرسه بهم بگید؟؟؟؟؟
                واقعا تمیدونم چیکارکنم

                دیدگاه


                  #9
                  پاسخ : مشکل اتصال کلید به میکرو

                  نوشته اصلی توسط italia2006
                  سلام به اساتید محترم
                  چیزی به ذهنتون نمیرسه بهم بگید؟؟؟؟؟
                  واقعا تمیدونم چیکارکنم
                  سلام دوست عزیز بهترین کار در این مواقع تکه کردن برنامه به چند قسمت هستش من برنامه شما را کامل ندیدم ولی بیا یه کاری کینم برنامه را به چند قسمت کن (به عبارتی فاز بندی کن) همچنین شماتیک و کدهای برنامه را هم در این قسمت قرار بده تا بتونیم بهتر کمک کنیم
                  موفق باشید
                  معجزه این است که هرچه داشته هایت را بیشتر با دیگران سهیم شوی،داراتر می شوی (لئونارد نیموی)
                  اگر مغزانسان،چنان ساده می بود که ما از آن سر در می آوردیم،هنوز چنان احمق بودیم که هیچ از آن سر در نمی آوردیم!
                  آموزش Modelsim

                  دیدگاه


                    #10
                    پاسخ : مشکل اتصال کلید به میکرو

                    نوشته اصلی توسط italia2006
                    سلام به اساتید محترم
                    چیزی به ذهنتون نمیرسه بهم بگید؟؟؟؟؟
                    واقعا تمیدونم چیکارکنم
                    من این کد اصلا نگاه هم نکردم
                    اگه کد تمیز همراه با کامنت مناسب قرار بدی راحت تر میشه کمک کرد
                    الان باید 4 ساعت وقت بزاریم ببینیم چی نوشتی بعدش 4 ساعت دیگه طول میکشه تا اشکالش در بیاد
                    [glow=red,2,300]تاپیک های ایجاد شده[/glow]

                    دیدگاه


                      #11
                      پاسخ : مشکل اتصال کلید به میکرو

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

                      دیدگاه


                        #12
                        پاسخ : مشکل اتصال کلید به میکرو

                        سلام مهندس ممنون از راهنماییت
                        فقط یه سوال این دستور wait که میگی حتما باید توی خط اول وقفه باشه یا نه؟
                        چون من قبلا روی خط سوم گذاشته بودمش ولی جواب نداد
                        بانس کلید رو هم سی میلی ثانیه قرار داده بودم
                        و این رو هم 500 میلی ثاننیه ولی جواب نداد
                        ممنون میشم جواب بدین

                        دیدگاه


                          #13
                          پاسخ : مشکل اتصال کلید به میکرو

                          نوشته اصلی توسط italia2006
                          سلام مهندس ممنون از راهنماییت
                          فقط یه سوال این دستور wait که میگی حتما باید توی خط اول وقفه باشه یا نه؟
                          چون من قبلا روی خط سوم گذاشته بودمش ولی جواب نداد
                          بانس کلید رو هم سی میلی ثانیه قرار داده بودم
                          و این رو هم 500 میلی ثاننیه ولی جواب نداد
                          ممنون میشم جواب بدین
                          سلام
                          دوست عزیز اگه از پوش باتن استفاده میکنی احتمالش زیاده که اینطوری بشه
                          تو زیر برنامه وقفه یه led رو toggle کن ببین بازم این میشه یا نه ، اگه بشه کلیدت مشکل داره و از میکرو سوییچ استفاده کنی دقیق تر می تونی کنترل کنی :mrgreen:
                          از دستور Config Debounce=30 و یا بیشترم می تونی استفاده کنی
                          اگه به صورت رندم این مشکل ایجاد شه ، مطمئن باش که مشکل از سخت افزار هستش،
                          ضمنا فرکانس کاری میکرو رو هم تغییر بده و با سرعت پایین تری امتحانش کم ، باید چند بار امتحان کنی جواب میگیری،میکروتم عوض کن
                          وقتی گریبان عدم با دست خلقت می درید/وقتی ابد چشم تو را پیش از ازل می آفرید/وقتی زمین ناز تو را در آسمانها می کشید/وقتی عطش طعم تو را با اشکهایم می چشید/من عاشق چشمت شدم ، نه عقل بود و نه دلی/چیزی نمی دانم از این دیوانگی و عاقلی/یک آن شد این عاشق شدن ، دنیا همان یک لحظه بود/آن دم که چشمانت مرا از عمق چشمانت ربود/وقتی که من عاشق شدم شیطان به نامم سجده کرد/آدم زمینی تر شد و عالم به آدم سجده کرد /بودم و چشمان تو ، نه آتشی و نه گلی/چیزی نمی دانم از این دیوانگی و عاقلی/.

                          دیدگاه


                            #14
                            پاسخ : مشکل اتصال کلید به میکرو

                            سلام دوست عزیز
                            اگه خازن سر پوش باتن هات نزاشتی بهت "وصیت" میکنم که حتما فوری این کارو بکنی
                            در این جور مواقع یه خازن 104 مولتی لایر 15 تومنی کار بهترین فیلتر ها رو می کنه
                            زندگی را تو بساز ،
                            نه بدان ساز که سازند و پذیری بی حرف ،
                            زندگی یعنی جنگ ، تو بجنگ ،
                            زندگی یعنی عشق ، تو بدان عشق بورز.

                            دیدگاه


                              #15
                              پاسخ : مشکل اتصال کلید به میکرو

                              سلام مهندس خازن صد نانو عدسی گذاشتم فایده نداشت
                              یعنی مولتی لایر فرق میکنه؟

                              دیدگاه

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