ورود به حساب ثبت نام جدید فراموشی کلمه عبور
برای ورود به حساب کاربری خود، نام کاربری و کلمه عبورتان را در زیر وارد کرده و روی «ورود به سایت» کلیک کنید.





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





کاربران برچسب زده شده

نمایش نتایج: از 1 به 4 از 4
  1. #1
    2013/01/15
    7
    0

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

    سلام و خسته نباشید.
    من نحوه ی فعال سازی تایمرها و دلیل استفاده رو تو منابع مختلف خوندم.
    مثلا اگر از کلاک داخلی استفاده بشه میشه تایمرو منبع خارجی باشه شمارنده و در حالاتی برای مقایسه کننده یا pwm و...
    و اینکه این تایمرها بصورت مسقل کار می کنند.
    سوالم اینه که مثلا و قتی تو pic basic pro می نویسیم pause 1000 و یک ثانیه وقفه ایجاد می کنیم از کدام تایمرها یا وقفه استفاده می کنه؟
    چرا وقفه ها یی رو که نیاز داریم در خود برنامه نگنجانیم؟مثلا دستورات For و ..؟
    من این از تایمر tmr0 برای pic12f675 استفاده کردم و نحوه محاسبه تایم رو از کتب و مراجع در آوردم ولی نمی دونم اساس استفاده و کاربردش چی هست.
    ممنون میشم راهنمایی بفرمایید.


    define OSCCAL_1K 1
    trisio=0
    option_reg=%00000111
    intcon=%00100000
    cmcon=7
    a1 var byte
    a0 var byte
    tmr0=102
    a1=0
    on interrupt goto vsa
    intcon=%10100000
    go:
    for a0=40 to 200
    pulsout gpio.4,a0
    pause 20
    next a0
    pause 1000
    for a0=200 to 40 step -1
    pulsout gpio.4,a0
    pause 20
    next a0
    pause 1000
    goto go
    disable
    vsa:
    tmr0=102
    a1=a1+1
    intcon.2=0
    resume
    enable
    end
    ویرایش توسط شاهرخ مستقیمی : 2016/12/08 در ساعت 13:00
  2. #2
    2007/11/22
    تبریز
    2,483
    486

    پاسخ : سوال در مورد تایمرها

    نقل قول نوشته اصلی توسط vpic

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    سوالم اینه که مثلا و قتی تو pic basic pro می نویسیم pause 1000 و یک ثانیه وقفه ایجاد می کنیم از کدام تایمرها یا وقفه استفاده می کنه؟
    چرا وقفه ها یی رو که نیاز داریم در خود برنامه نگنجانیم؟مثلا دستورات For و ..؟
    من این از تایمر tmr0 برای pic12f675 استفاده کردم و نحوه محاسبه تایم رو از کتب و مراجع در آوردم ولی نمی دونم اساس استفاده و کاربردش چی هست.
    ممنون میشم راهنمایی بفرمایید.
    سلام.
    در این حالت از هیچ تایمری استفاده نمیشه، بلکه CPU مشغول اجرای دستور NOP میشه (No Operation) و هیچ کاری انجام داده نمیشه تا اون تاخیر تموم بشه.
    مثلا شما میخواین یه پالس نسبتا دقیق ایجاد بکنین روی پایه ی x، (پایه ی غیر PWM) تایمر رو مقدار دهی میکنین که شروع کنه به شمارش و وقتی سر ریز شد، یه اینتراپت بده. بعد CPU مشغول انجام یه کار دیگه میشه (مثلا ارسال سریال یا اسکن کیبرد یا خوندن یه پتانسیومتر یا....) حالا وقتی وقفه ی تایمر اومد، CPU میره تو زیربرنامه ی وقفه؛ اونجا مثلا نوشتی پایه ی فلان رو NOT کن. اینجوری با حداقل دخالت CPU یه پالس روی پایه ی دلخواهت ایجاد کردی.
    یه کاربرد دیگه ش مثلا برای اندازه گیری فرکانس هست که اون رو واگذار میکنم به خودتون تا تحقیق کنین چطوری میشه اینکار رو کرد؟

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

  3. #3
    2013/01/15
    7
    0

    پاسخ : سوال در مورد تایمرها

    با سپاس فراوان.
    واقعا سردرگم شدم.
    یه سوال پیش میاد.
    وقتی تایمر سرریز میشه و cpu میهزتو زیر برنامه وقفه شاید یه طوری باشه که هر 10 میلی ثانیه سر ریز بشه.حالا میکرو میرسه که هم برنامه خودش(main( رو اجرا کنه و هم بره تو زیر برنامه وقفه؟
    من یه مواردی رو میگم اگر جایی اشتباه بود تصحیح بفرمایید.
    با کلاک داخلی 4 مگ با میکروی(12f675) ,تایم سیکل 64 میکرو ثانیه میشه و اگر ما مثلا 1 ثانیه رو بخوایم باید tmr0=194 قرار بردیم که بعد از 61 اینتراپت بده و یک ثانیه حساب بشه.
    حالا cpu با هر اینتراپت میپره تو زیر برنامه وقفه یا تا tmr0 به 255 نرسه زیر برنامه وقفه رو اجرا نمی کنه؟

    چطوری می تونم به جای دستور pause از تایمر استفاده کنم؟
    یک مثال ساده led چشمک زن کار منو راه می اندازه.
    این برنامه رو هم نوشتم ولی متاسفانه لامپ همیشه روشنه.
    define OSCCAL_1K 1
    a1 var byte
    a1=0
    cmcon=7
    trisio=0
    option_reg=%10000101
    intcon=%10100000
    tmr0=194
    on interrupt goto vsa
    go:
    if a1=255 then toggle gpio.1
    goto go
    disable
    vsa:
    a1=a1+1
    tmr0=194
    intcon.2=0
    resume
    enable
    end
    ممنون میشم راهنمایی بفرمایید.
  4. #4
    2007/11/22
    تبریز
    2,483
    486

    پاسخ : سوال در مورد تایمرها

    سلام.
    برنامه ای که نوشتین اصلا واضح نیست.
    نقل قول نوشته اصلی توسط vpic

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

    وقتی تایمر سرریز میشه و cpu میهزتو زیر برنامه وقفه شاید یه طوری باشه که هر 10 میلی ثانیه سر ریز بشه.حالا میکرو میرسه که هم برنامه خودش(main( رو اجرا کنه و هم بره تو زیر برنامه وقفه؟
    بله، چرا نرسه؟! cpu مشغول کار خودش هست، هر 10 میلی ثانیه هم میاد یه سر به وقفه تایمر میزنه و میره. اشکال در کجا میتونه به وجود بیاد؟
    محاسبات سرریز تایمر رو درست انجام ندادین.
    4مگ کریستال، تقسیم بر 4 (ثابت در تمام PICها) میشه 1 مگ. پریود هم میشه 1میکرو. حالا باید ببینی prescale تایمر رو روی چه عددی تنظیم کردی؟ مثلا نسبت 1:2 تنظیم کردی. خب این یعنی اینکه به ازای هر دو سیکل از کلاک ورودی، تایمر 1 دونه میشماره. خب حالا چقدر طول میکشه تا سر ریز بشه و وقفه بیاد؟
    2میکرو (به خاطر نسبت prescale) ضرب در 256 ( ظرفیت تایمر) میشه 512 میکرو ثانیه طول میکشه تا سرریز بشه و وقفه بیاد. چقدر زمان میخوای؟ 10 میلی ثانیه. خب 10 میلی تقسیم بر 512 میکرو میشه 19.53 .
    کافیه که تو زیربرنامه ی تایمر، یه متغیر رو به ازای هر وقفه افزایش بدی، وقتی به 19 تا سر ریز رسید، رجیستر tmr0 رو مقدار 127 بدی تا اون 0.5 از 19 هم درست بشه.
    بعد از وقفه ی 20ام، زمان 10 میلی ثانیه ی مورد نظر شما ساخته شده.

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت

نمایش نتایج: از 1 به 4 از 4

موضوعات مشابه

  1. مشکل در کار با تایمرها
    توسط nimasaboor در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2013/03/22, 07:54
  2. تایمرها
    توسط m0bina در انجمن میکروکنترلرهای AVR
    پاسخ: 4
    آخرين نوشته: 2012/08/14, 13:34
  3. کار با تایمرها
    توسط seraj_8008 در انجمن میکروکنترلرهای AVR
    پاسخ: 3
    آخرين نوشته: 2012/04/14, 00:56
  4. سوال در مورد تایمرها در میکرو atmega16 و زبان code vision
    توسط karimip در انجمن میکروکنترلرهای AVR
    پاسخ: 2
    آخرين نوشته: 2011/09/26, 00:33
  5. کار با تایمرها و کانترها
    توسط hossein_edison در انجمن میکروکنترلرهای AVR
    پاسخ: 8
    آخرين نوشته: 2009/04/15, 19:13

کلمات کلیدی این موضوع

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •