اطلاعیه

Collapse
No announcement yet.

مشکل با وقفه خارجی(INT 0)میکرو

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

    #46
    پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

    سلام
    این شماتیک هم خدمت شما
    http://vip.eca.ir/sharing/uploads/13400334101.rar

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

    -9 در محاسبات وارد می شود که منظور همون 9 ولت هست

    KVL نوشتم
    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

    دیدگاه


      #47
      پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

      نوشته اصلی توسط اقای دکتر
      داش BABY, من اگر من بخام 9 یا 12 ولت بدم به اپتوکوپلر؛؛ اپتو چقدر خروجی میده به پایه میکرو ؟؟؟
      BABY جان از بابت زحمتی که کشیدی ممنونم .واقعا مرسی . :applause: :applause: :applause:

      این مداری که گذاشتید حتما جواب مبده ؟؟ چون من میخام اونو بذارم داخل مدارم وPCB رو بسازم ؟؟
      یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

      دیدگاه


        #48
        پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

        نوشته اصلی توسط اقای دکتر
        داش BABY از بابت زحمتی که کشیدی ممنونم .واقعا مرسی . :applause: :applause: :applause:

        این مداری که گذاشتید حتما جواب مبده ؟؟ چون من میخام اونو بذارم داخل مدارم وPCB رو بسازم ؟؟
        الان شاتیک رو نگاه کردم .مقاومت حتما باید 680 اهم باشه؟؟ ظرفیت مقاومت به چی بستگی داره ؟؟

        مقاومت بیس ترانزیستور اپتو هم باید 100 کیلو باشه ؟؟
        یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

        دیدگاه


          #49
          پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

          سلام
          مدار مشکلی نداره می تونین برد رو طراحی کنین
          نکات در طراحی:
          1-مقاومت 680 اهم هم برای 9 ولت در نظر بگیرین و 1 کیلو برای 12 ولت
          2-مقاومت بیس ترانزیستور می تونه باشه می تونه نباشه من تنها گذاشتم که نسبت به نویز مدارتون مقاوم تر باشه می تونین برای تنظیم حساسیت مدارتون یه پتانسیومتر بزارین و دقت مدار رو نسبت به ولتاژهای متفاوت تغییر بدین
          3-برای جریان دهی 1 میلی آمپر مقاومت 10 کیلو در خروجی اپتوکوپلر رو برابر یک کیلو در نظر بگرین.
          4-خازن های ورودی و خروجی 7805 فراموش نشه.
          هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

          دیدگاه


            #50
            پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

            نوشته اصلی توسط baby_1
            مدار مشکلی نداره می تونین برد رو طراحی کنین
            2-برای جریان دهی 1 میلی آمپر مقاومت 10 کیلو در خروجی اپتوکوپلر رو برابر یک کیلو در نظر بگرین.
            سلام .امتحان چطور بود ؟؟
            baby جان منظورتون از مقاومت 10 کیلو همون مقاومت pull upهست دیگه؟

            من الان برد جدید رو مونتاژ کردم و برنامه هم همونجوری که گفتید تغییر دادم ولی الان case 0 اجرا میشه (برق که قطع میشه ) ولی case 1 اجرا نمیشه (وقتی که برق وصل میشه). :cry: :cry:
            یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

            دیدگاه


              #51
              پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

              سلام
              بله ، مدار و برنامه ای که الان بستین رو پلود کنین.
              هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

              دیدگاه


                #52
                پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                نوشته اصلی توسط baby_1
                سلام
                بله ، مدار و برنامه ای که الان بستین رو پلود کنین.
                سلام اینترنتم قطع شد :cry:
                اقا Return نگذاشته بودم برنامه برگشت نمیکرد الان درست شده ولی دستورات رو اشتباهی داره اجرا میکنه وقتی که برق وصل میشه CASE 0 رو اجرا میکنه وقتی که برق قطع میشه CASE 1 رو اجرا میکنه .

                به احتمال زیاد به خاطر اپتوکوپلر هست .باید یه تغییری تو برنامه داده بشه . ضمن اینکه شما X رو NOT تعریف کردید اون برای شرایط قبل بود الان دیگه اپتو هست باید تغییرش بدیدم


                X = Not Pind.2
                یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                دیدگاه


                  #53
                  پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                  سلام
                  خدا رو شکر که مدارتون کار کرد.تنها کاری که باید انجام بدین این هست به جای case 0 بنویسین case 1 و بلعکس اینجوری حالت مدار عکس می شه
                  هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                  دیدگاه


                    #54
                    پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                    نوشته اصلی توسط baby_1
                    سلام
                    خدا رو شکر که مدارتون کار کرد.تنها کاری که باید انجام بدین این هست به جای case 0 بنویسین case 1 و بلعکس اینجوری حالت مدار عکس می شه
                    متشکرم . خوب اگه CASE 0 و CASE 1 رو جابه جا کنم خاموش و روشن درست میشه اینو چیکارش کنم ؟؟


                    Do
                    If X = 0 Then
                    Exit Do
                    Else
                    Waitms 1
                    End If
                    Loop

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

                    یعنی عکس شده

                    مداری که بستم اینه
                    یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                    دیدگاه


                      #55
                      پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                      سلام
                      تغییرات جزیی دادم

                      کد:
                      $regfile = "m32def.dat"
                      $crystal = 1000000
                      $hwstack = 50
                      $swstack = 20
                      $framesize = 40
                      '====================
                      Config Int0 = Change
                      Config Porta = Output
                      '====================
                      Enable Interrupts
                      Enable Int0
                      On Int0 Baby
                      '===================
                      Dim X As Bit
                      '===================
                      X = Not Pind.2
                      '============
                      Do
                      
                      
                      
                      'Works
                      
                      
                      '============== Stop
                      Do
                      If X = 0 Then
                      Exit Do
                      Else
                      Waitms 1
                      End If
                      Loop
                      '===============
                      
                      Loop
                      
                      End
                      
                      '=================
                      Baby:
                      Select Case Pind.2
                      Case 0:
                      'A
                      'A
                      Porta = 0
                      Reset X
                      Case 1:
                      'A
                      'A
                      Porta = 255
                      Set X
                      End Select
                      
                      Return
                      '================
                      اگر می خواین همون رو تغییر بدین اینکارش کنین

                      کد:
                      Do                            
                      If X = 1 Then
                      Exit Do
                      Else
                      Waitms 1
                      End If
                      Loop
                      بعد چک کنین ببینین مشکلی هست یا خیر
                      هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                      دیدگاه


                        #56
                        پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                        سلام
                        درست شد ولی یه مشکل بود قبلا بهتون گفتم الانم بعضی مواقع ایجوری میشه .

                        مشکل اینجاست یعضی مواقع که برق قطع میشه باید مثلا دستورات CASE 0 اجرا بشه که نمیشه و دستورات CASE 1 اجرا میشه ،بعد که دستورات CASE 1 اجرا میشه میره سراغ CASE 0 .یه جور تداخل . به نظرتون به خاطر مقاومت PULL UP نیست ؟؟ظرفیتشو کم یا زیاد کنیم جواب میده ؟

                        مدارم همون بالایی هست

                        راستی این SET X و RESET X کارشون چیه ؟؟



                        Select Case Pind.2
                        Case 0:
                        'A
                        'A
                        Porta = 0
                        Reset X
                        یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                        دیدگاه


                          #57
                          پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                          سلام
                          منظورتون این هست که به ازای هر وقفه دو بار این لیبل اجرا می شه بکبار case 0 و یکبار case 1?

                          متغییر x بیان کننده این هست که برق رفته یا خیر.

                          x=1 یعنی برق هست و بلعکس
                          هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                          دیدگاه


                            #58
                            پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                            سلام
                            احتمالا نویزی روی مدار می یافته یا افت ولتاژ به صورت پله ای صورت می گیره، یه تست ساده بگیرین بعد از عبارت
                            Baby:
                            یه تاخیر 500 میلی ثانیه ای بزارین
                            مثلا

                            Baby:
                            waitms 500

                            هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                            دیدگاه


                              #59
                              پاسخ : مشکل با وقفه خارجی(INT 0)میکرو

                              نوشته اصلی توسط baby_1
                              سلام
                              احتمالا نویزی روی مدار می یافته یا افت ولتاژ به صورت پله ای صورت می گیره، یه تست ساده بگیرین بعد از عبارت
                              Baby:
                              یه تاخیر 500 میلی ثانیه ای بزارین
                              مثلا

                              Baby:
                              waitms 500
                              سلام
                              داش گلم ، تاخیر گذاشتم مشکل حل شد از بابت راهنمایی هاتون متشکرم :applause: :applause:
                              یا به اندازه آرزوهایت تلاش میکنی یا به اندازه تلاشت ارزو میکنی

                              دیدگاه

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