اطلاعیه

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