اطلاعیه

Collapse
No announcement yet.

توضیح ساده کپچر در avr

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

    توضیح ساده کپچر در avr

    سلام کسی می تونه کپچر رو یه کم باز کنه توی کتاب کاهه نوشته به محض تحریک پایه کپچر تایمر یه بر چسب زمانی واسه اون میده که من نفهمیدم یعنی چی ببینید من یه عرض پالس رو به کمک وقفه تایمر 1 و دستور bit wait اندازه گرفتم می خواستم همین کار رو با پایه کپچر انجام بدم خب می خواستم بدونم به محض تحریک پایه کپچر تایمر تازه شروع به کار می کنه و تا اتمام عرض پالس می شمره یا اصلا یه جور دیگس بعدش هم با کپچر میشه مدت زمان سپری شده تا پالس بعدی یا همون زمان low رو بلافاصله اندازه گرفت؟

    #2
    پاسخ : توضیح ساده کپچر در avr

    سلام میشه یکی جواب بده :angry: :nerd:

    دیدگاه


      #3
      پاسخ : توضیح ساده کپچر در avr

      کسی بلد نیست؟ :NO:

      دیدگاه


        #4
        پاسخ : توضیح ساده کپچر در avr

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

        بطور خلاصه عملیات Capture کردن یک تایمر، عملی شبیه عکس گرفتن از یک موجود متحرک است. به این ترتیب که ابتدا تایمر راه اندازی می شود و سپس با فرمان Input capture، یک کپی از وضعیت لحظه مورد نظر در Capture register قرار می گیرد و تایمر مورد نظر همچنان به شمارش خود ادامه می دهد. با دوبار انجام اینکار و تفاضل دو مقدار اندازه گیری شده می توان عرض پالس یا حتی فرکانس پالس را اندازه گرفت. اگر دو لبه فرمان دهنده هردو بالا یا پائین رونده باشند، زمان یک پریود موج و اگر از نظر لبه با هم متفاوت باشند، عرض پالس قابل اندازه گیری است. بعد از مطالعه دقیق Datasheet اگر همچنان سوالی بود، بفرمائید تا به آن پاسخ داد شود.
        اوژن: به معنای افکننده و شکست دهنده است
        دانایی، توانایی است-Knowledge is POWER
        برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
        وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
        قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
        اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
        ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

        دیدگاه


          #5
          پاسخ : توضیح ساده کپچر در avr

          توی دیتا شیت به زبان سی توضیح داده ، من دارم سعی میکنم به زبان بیسیک بنویسمش . اگه ممکنه راهنماییم کنید



          $regfile = "m8def.dat"
          $crystal = 16000000


          'lcd config


          Config Lcdpin = Pin , Db4 = Pinb.3 , Db5 = Pinb.2 _
          , Db6 = Pinb.1 , Db7 = Pinc.0 , E = Pinb.4 , Rs = Pinb.5
          Config Lcd = 16 * 2
          Config Lcdbus = 4


          Config Pind.6 = Output
          Config Timer1 = Timer , Prescale = 8 , Capture Edge = Rising


          Dim a as Byte
          Dim Timercounter As Word


          On Capture1 Captmr


          a=0
          Timercounter = 0
          timer1=0


          Enable Interrupts
          Enable Capture1


          Do




          Loop


          Captmr:
          incr a
          if a=1 then
          Config Timer1 = Timer , Prescale = 8 , Capture Edge = falling
          else
          stop timer1
          Timercounter = Capture1
          Config Timer1 = Timer , Prescale = 8 , Capture Edge = Rising
          a=0
          timer1 = 0
          Cls
          Lcd "pwidth:" ; "" ; Capture1
          Waitms 500
          endif






          Return


          End
          یه مشکلی هست فقط ، توی شبیه سازی پروتنوس زمان خاموشی رو اندازه میگیره نه high بودن سیگنال رو ، بنظرتون باید کجای برنامه رو تغییر بدم ؟
          عظمت را در چشم کسانی دیدم که بی توقع مهربانند .

          دیدگاه


            #6
            پاسخ : توضیح ساده کپچر در avr

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

            دیدگاه


              #7
              پاسخ : توضیح ساده کپچر در avr

              نوشته اصلی توسط soheyl_60 نمایش پست ها
              سلام.
              روال مد کپچر به این شکله.
              بعد از تنظیمات مد کپچر باید نوع وقفه کپچر تعیین بشه که کپچر به پالس بالا رونده حساس باشه یا لبه پایین رونده.اگه وقفه به پالس بالا رونده تنظیم بشه به محض اعمال یک پالس بالا رونده تایمر بکار میافته.حالا اگه میخوای عرض پالسو تعیین کنی باید نوع وقفه رو تغییر بدی و روی پالس پایین رونده تنظیم بشه.وقتی پالس از بالا به پایین رفت وقفه فعال شده و اعدادی تایمر در ریجیستر کپچر کپی میشن و با خواندن این اعداد عرض پالس اولی رو بدست بیارین.
              ممنون از توضیحاتتون دوتا سوال دارم
              اول اینکه بعد از اومدن وقفه حساس به لبه بالا رونده باید
              کپچر رو تنظیم به لبه پایین رونده تنظیم کنم و بعد از اومدن
              وقفه دوم کپچر رو بخونم ؟
              دوم اینکه تایمر رو باید در ادامه صفر کنم درسته ؟
              تقریبا الانم تو برنامه همینکار رو کردم ولی تو شبیه سازی با پروتئوس
              درست کار نمیکنه ، وقتی دیوتی سایکل رو زیاد میکنم مقدارش کم میشه
              و بلعکس ، انگار داره زمان خاموشی رو محاسبه میکنه
              نمیدونم شاید مشکل از پروتئوس باشه
              جدیدترین ویرایش توسط alonejax; ۲۰:۳۵ ۱۳۹۷/۰۳/۲۷.
              عظمت را در چشم کسانی دیدم که بی توقع مهربانند .

              دیدگاه


                #8
                پاسخ : توضیح ساده کپچر در avr

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

                دیدگاه


                  #9
                  پاسخ : توضیح ساده کپچر در avr

                  ببینم چکار میتونم بکنم ، بازم ممنون
                  عظمت را در چشم کسانی دیدم که بی توقع مهربانند .

                  دیدگاه


                    #10
                    پاسخ : توضیح ساده کپچر در avr

                    یکم تمرین کنی حله.

                    دیدگاه

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