اطلاعیه

Collapse
No announcement yet.

خارج شدن از حلقه do-loop پر از تاخیر(کنترلر rgb)

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

    #16
    پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

    نوشته اصلی توسط mohammad...
    قرار دادن for next فکر خوبیه ولی اینجا کلید به پایه int0 وصله و هر لحظه کلید چک میشه اگر بین wait ها کلید بار دیگه زده بشه چون ایندفعه مقدار متغیر a مثلا میشه 1 باید بره اون متغیر رو چک کنه و منتظر نمی مونه که لیبل تموم بشه بعد بره

    من فکر می کنم که مشکل از کلید هست
    اینو به صورت عملی تست کردین؟
    مگر اینکه که پینی که به کلید وصله رو مستقیم بخونی یعنی از انتراپ خارجی استفاده نشه
    مثلا
    [code=c]if pin =0 then goto next_line1[/code]
    امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

    دیدگاه


      #17
      پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

      نوشته اصلی توسط mahdi8866
      مگر اینکه که پینی که به کلید وصله رو مستقیم بخونی یعنی از انتراپ خارجی استفاده نشه
      مثلا
      [code=c]if pin =0 then goto next_line1[/code]
      ببخشید منظور شما رو متوجه نشدم

      سوال می کنم کلیدی که به پایه ی int0 یا کلا به اینتراپت وصله مگر دائما چک نمیشه این سواله واسما برای همین پرسیدم
      برد جوجه کشی:
      مطالعه پست 1 (حتما مطالعه کنید)


      مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

      دانلود

      توجه:
      این برد نیمه صنعتی و خانگی هست...
      برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

      آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

      دیدگاه


        #18
        پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

        بستگی به عملی که میخواد انجام بده داره اگه بخواد از حلق یا تاخییر خارج بره خط بعدی گزینه چک کردن مستقیم پین خوبه
        وگرنه با اجرای اینتراپت خب بلا فاصله زیر برنامه اینتراپت اجرا میشه یعنی کلا از حلقه خارج میشه میپره تو زیر برنامه اینتراپت
        امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

        دیدگاه


          #19
          پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

          نوشته اصلی توسط mahdi8866
          بستگی به عملی که میخواد انجام بده داره اگه بخواد از حلق یا تاخییر خارج بره خط بعدی گزینه چک کردن مستقیم پین خوبه
          وگرنه با اجرای اینتراپت خب بلا فاصله زیر برنامه اینتراپت اجرا میشه یعنی کلا از حلقه خارج میشه میپره تو زیر برنامه اینتراپت
          اگر اینطور باشه پس فکر کنم کلید رو نمی تونه بخونه میکرو چون من تو پروتیوس بستم ولی کار نمی کنه و مشکل داره
          برد جوجه کشی:
          مطالعه پست 1 (حتما مطالعه کنید)


          مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

          دانلود

          توجه:
          این برد نیمه صنعتی و خانگی هست...
          برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

          آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

          دیدگاه


            #20
            پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

            خب شما باید یا تاخییر 10 میلی ثانیه بعد خوندن پین بذاری و عدد تکرار حلقه رو هم طوری بذاریکه چند بار 10 میلی ثانیه تکرار بشه اونوقت 1 ثانیه بشه (البته اعداد فرضی هستن)
            یعنی مکث کوتاه بذاری تا پین چک شه
            امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

            دیدگاه


              #21
              پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

              نوشته اصلی توسط mohammad...
              قرار دادن for next فکر خوبیه ولی اینجا کلید به پایه int0 وصله و هر لحظه کلید چک میشه اگر بین wait ها کلید بار دیگه زده بشه چون ایندفعه مقدار متغیر a مثلا میشه 1 باید بره اون متغیر رو چک کنه و منتظر نمی مونه که لیبل تموم بشه بعد بره

              من فکر می کنم که مشکل از کلید هست
              اینو به صورت عملی تست کردین؟
              بله کلا مدارو روی برد تست میکنم
              الان دارم با for next کار میکنم مشکلم تقریبا حل شد فقط باید زمانبندیشو درست کنم
              اینتراپت رو هم غیر فعال کردم و بجاش توی حلقه فور نکست این شرطو گذاشتم
              If Pind.2 = 1 Then Goto xxx
              کار اینتراپتو میکنه دیگه :icon_razz:

              نوشته اصلی توسط mohammad...
              اگر اینطور باشه پس فکر کنم کلید رو نمی تونه بخونه میکرو چون من تو پروتیوس بستم ولی کار نمی کنه و مشکل داره
              دور پروتیوس رو که کلا برای این پروژه خط بکشید :angry:

              دیدگاه


                #22
                پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                در پرتئوس چون اجرای شبیه سازی از لحاظ سرعت به اجرای کد در عمل نمیرسه چنین خطاهایی سر میزنه
                مثلا بازدن دکمه در عمل با زدن دکمه در پرتئوس بنا بر سرعت عملکرد فرق میکنه پرتئوس گهگاهی لایی میکشه :mrgreen: باید براش تاخییر بذاری
                امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                دیدگاه


                  #23
                  پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                  نوشته اصلی توسط mahdi8866
                  در پرتئوس چون اجرای شبیه سازی از لحاظ سرعت به اجرای کد در عمل نمیرسه چنین خطاهایی سر میزنه
                  مثلا بازدن دکمه در عمل با زدن دکمه در پرتئوس بنا بر سرعت عملکرد فرق میکنه پرتئوس گهگاهی لایی میکشه :mrgreen: باید براش تاخییر بذاری
                  کلا سرعتش پایینه من هر چی خواستم یه فایل wave رو از mmc بخونم و تو پروتیوس شبیه سازی کنم جز صدای تق تق چیز دیگه ای نشنیدم :angry:
                  برد جوجه کشی:
                  مطالعه پست 1 (حتما مطالعه کنید)


                  مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

                  دانلود

                  توجه:
                  این برد نیمه صنعتی و خانگی هست...
                  برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

                  آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

                  دیدگاه


                    #24
                    پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                    یه جاشو درست میکنم یه جای دیگشو .... :cry2:
                    برنامه حله فقط افکت آخریه یه مشکل کوچیک پیدا کرده :eek:

                    توی اخرین افکت فقط یه ال ای دی روشن میشه و هیچ علامتی از خودش نشون نمیده
                    مطمینم که اونجا هنگ نمیکنه چون و قتی میاد توی این بخش با زدن کلید میره افکت اول(کار تغییر افکت انجام میشه)

                    نمیدونم شاید برنامه اینجخ خیلی سریع یا آروم انجام بشه و من متوجه چیزی نشم
                    اینم برنامه جدید:

                    [code=qbasic]
                    $regfile = "m8def.dat"
                    $crystal = 8000000
                    '________________________________ADC & PWM______________________________________
                    Config Adc = Single , Prescaler = Auto , Reference = Avcc

                    Config Timer1 = Pwm , Pwm = 8 , Compare A Pwm = Clear Down , Compare B Pwm = Clear Down , Prescale = 1
                    Config Timer2 = Pwm , Pwm = On , Compare Pwm = Clear Up , Prescale = 1
                    '________________________________Variables___ ___________________________________
                    Dim R As Word
                    Dim G As Word
                    Dim B As Word
                    Config Pind.2 = Input
                    '____________________________________________ ___________________________________


                    Dim A As Long

                    Start Adc
                    Main:
                    Waitms 500
                    A:


                    R = Getadc(0)
                    G = Getadc(1)
                    B = Getadc(2)
                    R = R / 3.99
                    G = G / 3.99
                    B = B / 3.99

                    Pwm1a = G
                    Pwm1b = B
                    Ocr2 = R
                    If Pind.2 = 1 Then Goto B
                    Goto A
                    '=================
                    B:
                    Waitms 200
                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    G = 0
                    B = 0
                    R = 255
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    G = 60
                    R = 255
                    B = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    G = 255
                    R = 255
                    B = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    G = 255
                    R = 0
                    B = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    G = 255
                    B = 15
                    R = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    R = 255
                    B = 50
                    G = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    R = 100
                    B = 110
                    G = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    B = 255
                    R = 0
                    G = 0
                    Next A

                    For A = 1 To 90000
                    If Pind.2 = 1 Then Goto C
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    R = 255
                    G = 255
                    B = 255
                    Next A

                    Goto B
                    '=================
                    C:
                    Waitms 200

                    Do
                    R = 100
                    G = 0
                    B = 0
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    Decr R
                    Incr G
                    For A = 1 To 100
                    If Pind.2 = 1 Then Goto Main
                    Next A
                    If Pind.2 = 1 Then Goto Main
                    Loop Until G = 120

                    Do
                    R = 0
                    G = 100
                    B = 0
                    Pwm1a = R
                    Pwm1b = B
                    Ocr2 = G
                    Decr G
                    Incr B
                    For A = 1 To 100
                    If Pind.2 = 1 Then Goto Main
                    Next A
                    If Pind.2 = 1 Then Goto Main
                    Loop Until B = 120

                    Do
                    R = 0
                    G = 0
                    B = 100
                    Pwm1a = G
                    Pwm1b = B
                    Ocr2 = R
                    Decr B
                    Incr R
                    For A = 1 To 100
                    If Pind.2 = 1 Then Goto Main
                    Next A
                    If Pind.2 = 1 Then Goto Main
                    Loop Until R = 120

                    Goto C
                    '=================
                    [/code]

                    دیدگاه


                      #25
                      پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                      من که تاحالا با این نوع پروژه ها کار نکردم
                      ولی جابجای rgb در بخش اخر شده البته من با دقت نگاه نکردم
                      (:|
                      امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                      دیدگاه


                        #26
                        پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                        نوشته اصلی توسط mahdi8866
                        ولی جابجای rgb در بخش اخر شده البته من با دقت نکردم
                        نفهمیدم منظورتونو

                        دیدگاه


                          #27
                          پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                          [code=vb]Pwm1a = G
                          Pwm1b = B
                          Ocr2 = R[/code]
                          امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                          دیدگاه


                            #28
                            پاسخ : خارج شدن از حلقه do-loop پر از تاخیر

                            نوشته اصلی توسط mahdi8866
                            [code=vb]Pwm1a = G
                            Pwm1b = B
                            Ocr2 = R[/code]
                            اینو خودم اینطوری کردم رنگ های روی مدار اینطوری وصلن به pwm ها

                            درست شد :nice: :applause: :wow:
                            طبق معمول بی دقتی از خودم بود

                            دیدگاه


                              #29
                              پاسخ : خارج شدن از حلقه do-loop پر از تاخیر(کنترلر rgb)

                              سلام
                              الحمدلله که مشکل شما هم حل شد دیشب من خوابم میومد دیگه نفسای اخرم بود :mrgreen: دیگه نمیتونستم رو برنامت دقت کنم
                              امام مهدی(عج): اگر شیعیان ما ، که خداوند طاعتشان دهد. در عهد ما وفادار و همدل بودند، هرگز دیدار ما (ظهور) به تاخیر نمی افتاد.(کدام عهد ؟)

                              دیدگاه

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