اطلاعیه

Collapse
No announcement yet.

تبدیل پین معمولی به INT!

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

    تبدیل پین معمولی به INT!

    سلام
    دنبال راهی هستم که بتونیم یک پین AVR رو به عنوان پایه وقفه خارجی استفاده کنم
    تایمر-کانتر ها همشون درگیر هستن
    پایه های وقفه خارجی هم همینطور :biggrin:

    ممنون میشم راهنمایی بفرمایید
    آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

    116 کتابخانه مورد نیاز برای Altium Designer

    از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

    #2
    پاسخ : تبدیل پین معمولی به INT!

    نمیشه
    :surprised:
    [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

    دیدگاه


      #3
      پاسخ : تبدیل پین معمولی به INT!

      سوالتون چنتا ابهام برا من داره
      1) اون پین هایی که مشغول اند ، به عنوان پورت استفاده شدند یا وقفه خارجی؟ (دنبال راهی هستم که بتونیم یک پین AVR رو به عنوان پایه وقفه خارجی استفاده کنم)
      2) شما می خواین این وقفه ها خروجی باشه یا ورودی؟ (تایمر-کانتر ها همشون درگیر هستن!!!!!!!!!!!!!)
      3)می تونین میکرو رو عوض کنین؟
      4)(روش خرکی) سرکشی به پین ها

      دیدگاه


        #4
        پاسخ : تبدیل پین معمولی به INT!

        وقفه خروجی چیه بابا oo:
        ر وش سر کشی به پین ها علاوه بر زمان گیری شدید باعث مشغول ماندن میکرو میشود
        [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

        دیدگاه


          #5
          پاسخ : تبدیل پین معمولی به INT!

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

          دیدگاه


            #6
            پاسخ : تبدیل پین معمولی به INT!

            نوشته اصلی توسط 1768lpc
            من نمیدونم سخت افزاری که داری چیه ولی ببین شاید بتونی منابع تولید وقفه ای که داری رو باهم AND کنی بدی به یه وقفه
            بعد توو تابع اون وقفه چک کنی ببینی کدوم ایجاد کننده وقفه بوده. (البته اگه توو سخت افزارت نشونه ای داری که امکانش رو برات فراهم میکنه)
            وقفه ای رخ داد و 1 ماند وقفه دوم اگر درخواست شود به ورودی چون یک پایه گیت مون هنوز 1 هست وقفه رخ نداده از و از بین میرود مشکل این کار بسیار زیاد است !!
            [move][img width=133 height=100]http://bargiri.persiangig.com/aks/0.306310001356499787_taknaz_ir.gif[/img][/move]

            دیدگاه


              #7
              پاسخ : تبدیل پین معمولی به INT!

              نوشته اصلی توسط حامد رحیمی
              وقفه ای رخ داد و 1 ماند وقفه دوم اگر درخواست شود به ورودی چون یک پایه گیت مون هنوز 1 هست وقفه رخ نداده از و از بین میرود مشکل این کار بسیار زیاد است !!
              آقا من منظورم OR بود البته
              ولی شما درست میگید. مشکل زیاد داره.

              دیدگاه


                #8
                پاسخ : تبدیل پین معمولی به INT!

                فک کنم بتونی در زیر برنامه یکی از همون تایمر هات بخونی پین رو اگه سرعت تایمر ها زیاد هست
                http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                دیدگاه


                  #9
                  پاسخ : تبدیل پین معمولی به INT!

                  تشکر فراوان از تمام عزیزان
                  عذر خواهی میکنم سوالم رو واضح مطرح نکردم
                  میکرو ATMega32 هست که دوتا وقفه INT0 و INT1 برای تشخیص وقفه خارجی استفاده شده
                  و پورت B به ال سی دی متصل هست
                  کانتر تایمر ها رو هم به این خاطر گفتم درگیر هستن که حدس میزدم بعضی دوستان بگن تو زیربرنامه سرریز اونا وضعیت پین رو چک کن
                  چک کردن به روش اون حیوان نجیب مذکور oo: هم میکرو رو زیادی درگیر میکنه

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

                  نهایتا اگه به نتیجه ای نرسم باید تو حلقه اصلی با یه دستور If فرکانس میکرو رو تقسیم کنم و پین رو چک کنم
                  به نظرتون مشکل ساز خواهد شد؟
                  آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                  116 کتابخانه مورد نیاز برای Altium Designer

                  از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                  دیدگاه


                    #10
                    پاسخ : تبدیل پین معمولی به INT!

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

                    دیدگاه


                      #11
                      پاسخ : تبدیل پین معمولی به INT!

                      نوشته اصلی توسط aliila
                      با سرعت کمتر میتونی . به یک پایه اینتراپت و چندتا دیود نیاز دارید . تعداد پین هایی که می خوای اینتراپت کنی با دیود به پایه اینتراپت وصل میکنی و در این صورت در لحضه رخ دادن اینتراپت سریع پورت رو میخونی ببینی کدوم پایه یک شده .
                      ممنون از لطفتون :applause:
                      آموزش ساخت جعبه برای مدار با نرم افزار Corel Draw - آموزش طراحی تابلو ثابت با Corel Draw و LED Tool - آموزش کرک LED Tool

                      116 کتابخانه مورد نیاز برای Altium Designer

                      از دروغ متنفرم؛ هرچند در این مملکت به جرم صداقت، کودن نامیده شوم.

                      دیدگاه

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