اطلاعیه

Collapse
No announcement yet.

ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

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

    ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

    با سلام

    من می خوام یک میکرو میکروی دیگه ای را وقفه بده . شماتیکو فقط می خوام . با tip122 بستم نشد . مستقیم هم بستم نشد .البته بگم با مقاومت 10 کیلو پول پ بستم . ولی میکروی دوم همش تو وقفه هست .
    دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

    #2
    پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟


    کد و مدارتون رو بذارید تا بشه نظر داد.
    ?Why not

    دیدگاه


      #3
      پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

      نوشته اصلی توسط QUARK
      کد و مدارتون رو بذارید تا بشه نظر داد.
      این شماتیک : http://starsoheil2007.persiangig.com/other/AVR_TEST/shematic.png
      http://starsoheil2007.persiangig.com...T/shematic.png

      اینم کد میکروی یک :

      کد:
      DO
      IF PINA.0=0 THEN
      RESET PORTC.7
      END IF
       SET PORTC.7
      LOOP

      اینم کد میکرو وقفه گیرنده

      کد:
      Config Int0 = Falling
      On Int0 Readinput
      Enable Interrupts
      Enable Int0
      Do
      Toggle Porta.5
      Wait 1
      
      
      Loop
      
      END
      Readinput:
      Set Porta.6
      Wait 2
      Reset Porta.6
      RETURN
      دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

      دیدگاه


        #4
        پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

        الان از میکروی سمته چپی میفرستی واسه راستیه.

        خب چرا از ترانزیستور استفاده کردی.مستقیم وصل کن.
        ?Why not

        دیدگاه


          #5
          پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

          مدارو تو پروتیوس تست می کنین ؟
          یا بستین ؟

          دیدگاه


            #6
            پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

            نوشته اصلی توسط hadi_hashemi_85
            مدارو تو پروتیوس تست می کنین ؟
            یا بستین ؟
            تو پروتئوس جواب نمیده . همش وقفه اجرا میشه . چه برسه به عملی بستن ؟
            دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

            دیدگاه


              #7
              پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

              نوشته اصلی توسط QUARK
              الان از میکروی سمته چپی میفرستی واسه راستیه.

              خب چرا از ترانزیستور استفاده کردی.مستقیم وصل کن.
              مستقیمم جواب نمیده اصلا به وقفه نمیره ؟
              دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

              دیدگاه


                #8
                پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                چرا جواب نمیده؟ من که هم تو پروتئوس (همین الان تست کردم) و هم قبلاً تو عمل تست کرده بودم جواب دادن.
                برنامتو تغییر بده، بلکه درست شه جیگر.
                ?Why not

                دیدگاه


                  #9
                  پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                  نکنه وقفه رو تو مد low level گذاشتین . اگه روی این باشه مادام اینکه پورت صفره وقفه اجرا میشه . ولی اگه روی falling edge باشه تنها وقتی صفر میشه وقفه اجرا میشه .
                  والا این مشکل شما توی سیمیلاتور نه ، ولی در عمل همیشه پیش میاد و علت اون نوسانات ولتاژ هست که باعث میشه وقفه چندین بار اجرا بشه . اینم بایه فیلتر مقاومت - خازن حل میشه .
                  ویه راه حل دیگه این که توی اول وقفتون وقفه ی اصلی رو غیر فعال کنین .در آخر وقفه فعالش کنین

                  دیدگاه


                    #10
                    پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                    سلام

                    مشکلات:
                    در برنامه
                    Config Int0 = Falling
                    یعنی هنگامی که پایه صفر شود وقفه فعال شود و در حالت عادی که میکرو فرستنده PINA.0 یک هست(یعنی کاربر دکمه رو فشار نداده باشه)(با فرض پول پ شدن مقاومتهای مدار) ترانزیستور متصل به فرستنده روشن بوده و خروجی رو صفر می کنه و میکرو گیرنده در لحظه روشن شدن و تا هنگام خاموش شدن در وقفه خواهد ماند

                    فرکانس کاری میکرو دوم مشخص نشده است چون میکرو برای فعال کردن یک وقفه و شناساییش به حدودا 2 سیکل کاری احتیاج داره و اگر این تغییرات سریع صورت بگیره میکرو نمی تونه شناسایش کنه ، یعنی اگر مشکل بالا رو رفع کردین ، وقتی وقفه رو می خواین فعال کنین( پایه میکرو گیرنده رو به سطح منطقی صفر بردین )یه تاخیر ایجاد کنین(مثلا 10 میکرو ثانیه)بعد سطح منطقی رو برگردونین به یک تا حتما مطمئن باشین که میکرو گیرنده وقفه رو سنس می کنه (چون در این مدار تا هنگامی که کاربر دستش روی دکمه باشه یه سیگنال با فرکانسی خاص که با توجه به فرکانس کاری میکرو ایجاد می شه ایجاد می شه اصطلاحا می گن قطار پالس )
                    هیچ دانش آموزی نیست که به در خانۀ دانشمندی آمد و شد کند, مگر این که خداوند برای هر گامی که برمی دارد عبادت یک سال را برایش رقم زند.

                    دیدگاه


                      #11
                      پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                      یه تاخیر ایجاد کنین(مثلا 10 میکرو ثانیه)بعد
                      این تاخیر شما کماکان پا برجاست دیگه :nice:

                      دیدگاه


                        #12
                        پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                        ویه راه حل دیگه این که توی اول وقفتون وقفه ی اصلی رو غیر فعال کنین .در آخر وقفه فعالش کنین
                        این یعنی چه ؟
                        دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

                        دیدگاه


                          #13
                          پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                          منظورشون این بود.
                          int_0:
                          disable int0
                          .
                          .
                          .
                          your code
                          .
                          .
                          .
                          enable int0
                          return
                          ?Why not

                          دیدگاه


                            #14
                            پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                            مرسی

                            مشکلم به طور عجیبی برطرف شد.
                            اومدم از نوع یک فایل جدید توپرتئوس ساختم و شبیه سازی کردم . مشکلم حل شد .

                            فقط یک مشکل دارم که میکرو دون به محض اجرای شبیه سازی یکبار وقفه را اجرا میکنه سپس به اجرای برنامه اصلی می پردازه . اینو چه جوری حل کنم.
                            دنيا بر پايه برنامه هايي هست که خدا با زبان برنامه نويسي خودش مينويسد . کامپايل شده آن اين جهان و قوانين آن است . start آن تولد است و end آن مرگ . پر از گزينه هاي شرطي و دستورات حلقه و تکرار ...

                            دیدگاه


                              #15
                              پاسخ : ایجاد وقفه توسط میکرو دیگر ؟؟؟؟

                              نوشته اصلی توسط starsoheil
                              فقط یک مشکل دارم که میکرو دون به محض اجرای شبیه سازی یکبار وقفه را اجرا میکنه سپس به اجرای برنامه اصلی می پردازه . اینو چه جوری حل کنم.
                              اینکارو نکنه چیکار کنه.
                              میره دیگه به وقفه نمیاد؟ منظورتون اینه؟
                              ?Why not

                              دیدگاه

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