اطلاعیه

Collapse
No announcement yet.

Timer در CodeWizard کدویژن

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

    Timer در CodeWizard کدویژن

    من با WinAVR کار کردم یه جاهای کوچیکی به مشکل برخوردم اگه حل نشد مجبور میشم بقیه را با CodeVision ادامه بدم .
    اگه از یکی از دوستان بتونند قسمت تایمر CodeWizard را توضیح بدند البته منظورم منوهاشه که چکار می کنند و چه جوری با ید مثلا زمان یک ثانیه را با کریستال 4MHZ تولید کرد ممنون میشم.
    Difficult But possible
    به اميد ايراني آباد.
    http://art-net.ir

    #2
    پاسخ : Timer در CodeWizard کدویژن

    سلام دوست عزیز

    چند صفحه اسکن کردم . ببین به دردت می خوره .
    http://iranupload.net/file.php?file=91c944c3e1ba866c584d5dba583f8859

    پیروز و سربلند باشید.
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0

    دیدگاه


      #3
      پاسخ : Timer در CodeWizard کدویژن

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

      عالمی دیگر بباید ساخت و از نو آدمی
      پردازش تصویر با FPGA از صفر تا انتها
      http://www.eca.ir/forum2/index.php?topic=74299.0

      دیدگاه


        #4
        پاسخ : Timer در CodeWizard کدویژن

        ایران پلود درست نشده خب Box.net هم خوبه ها
        Difficult But possible
        به اميد ايراني آباد.
        http://art-net.ir

        دیدگاه


          #5
          پاسخ : Timer در CodeWizard کدویژن

          لینک رو گذاشتم.
          آدمی از عالم خاکی نمی آید بدست

          عالمی دیگر بباید ساخت و از نو آدمی
          پردازش تصویر با FPGA از صفر تا انتها
          http://www.eca.ir/forum2/index.php?topic=74299.0

          دیدگاه


            #6
            پاسخ : Timer در CodeWizard کدویژن

            سلام ....................

            ببینید بحث در مورد واحد تایمر/کانتر میکرو بحثیه که از دو زاویه میشه به اون نگاه کرد ، یکی رجیستری و دیگری در محیط کامپایلر .

            چون شما سوالتون رو با نگرش دوم مطرح کردید، به معرفی محیط کامپایلر ، اونم کامپایلر CodeVision می پردازیم . ببینید در لینک زیر یک سری عکسه که توضیحات مربوط به اونها رو در اینجا مطرح می کنیم . امیدوارم که جواب سوالتون رو بتونم مطرح کنم .

            http://www.4shared.com/file/60505893...odeWizard.html

            شکل اول : این شکل گزینه ی Timer رو در محیط CodeWizard نشون میده . همون طور که مشاهده می کنید ، این گزینه دارای انتخاب های مختلفیه که در ادامه به اون هم پرداخته میشه .

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

            شکل سوم : این گزینه تعیین کننده ی حاصل تقسیم فرکانس منبع کلاک بر ضریب تقسیم یا prescaler واحد تایمره . (اینم بر میگرده به سه بیت اول رجیستر TCCR )

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

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

            شکل ششم : این گزینه وقفه ی تایمر رو وقتی که عمل سرریز در تایمر اتفاق میفته ، فعال میکنه .

            شکل هفتم : این گرینه ؛ تعیین میکنه که زمانی که تایمر در مد CTC قرار داره و عمل قیاس بین رجیستر TCNT و OCR انجام میشه ، وقتی تطابق در قیاس اتفاق افتاد ، یک وقفه در روال برنامه فعال میشه .

            شکل هشتم : این گزینه مقدار اولیه ی TCNT رو تعیین میکنه . بعضی اوقات لازمه که برای TCNT یه مقدار اولیه در نظر بگیریم که توی روال برنامه به کارمون بیاد .

            شکل نهم : این گزینه هم برای تعیین رجیستر OCR در زمان های مقایسه هست . همون طور که در باره ی مد CTC می دونید ، این مقایسه بین دو رجیستر TCNT وOCR انجام میشه .

            اما قسمت دوم سوالتون . ببینید برای اینکه واحد تایمر/کانتر بتونه به وظیفه ی خودش عمل کنه نیازه که یک منبع پالس داشته باشه . حالا فرض کنید منبع کلاکمون داخلی باشه و همون 4 مگاهرتزی که شما فرمودید هم باشه . با انتخاب prescaler مشخصی (مثلا 16 ) می تونیم حساب کنیم که مدت زمان شمارش هر پالس چقدره ؟ با یه محاسبه ی ساده : 4 تقسیم بر 16 که مقدار prescaler مون هست مقدار فرکانس کلاک تایمر رو به ما میده . حالا عکس این مقدار میشه مدت زمان شمارش یک پالس . (در اینجا میشه 4 میکرو ثانیه) حالا اگه این مقدار رو در 256 ضرب کنیم ، حاصل ، مدت زمانیه که تایمر عمل سرریز براش اتفاق میفته (از 0 تا 255) . 4*256=1024 میکرو ثانیه . حالا می تونید حساب کنید که برای تولید 1 ثانیه از چه فرکانس و چه prescaler ای استفاده کنید . احتمالا متوجه شدید که نوع تایمر هم می تونه تعیین کننده باشه (8 بیتی یا 16 بیتی) . برای مثال در این مورد اگه از تایمر 16 بیتی استفاده کنیم ، این مقدار برابر میشه با (2^16)*4 که برابر میشه با 262144 میکرو ثانیه .

            امیدوارم مشکلتون حل شده باشه . موفق باشید .
            دوستان! مدتی کمتر به سایت میام ..

            دیدگاه

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