نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

آموزش جامع AVR جلسه ۱۷ آموزش Counter

به نام خدا : تو این مطلب از آموزش avr ،انشاالله میخوام ۲ تا پروژه با کانتر بزارم براتون و چند تا سوال/مشکل هم بگم بهتون تا برید حالشو ببرید.
آموزش جامع AVR جلسه ۱۷ آموزش Counter

آموزش جامع AVR جلسه ۱۷ آموزش Counter






 

آموزش AVR

سوال : فرق کانتر با وقفه؟
جواب : والا با کانتر هم میشه تعداد پالس اعمال شده رو محاسبه کرد، با وقفه خارجی هم میشه، حالا مسئله اینه که کی باید از کدوم استفاده کنیم، در این مورد خودم هم هنوز نمیدونم اگه کسی میدنه به من هم بگه، مثلا برا کار های صنعتی و پروژه های دست حسابی باید از کدوم استفاده کنیم ، حالا اگه چیزی فهمیدم و اگه یادم بود pardon اینجا قرار میدم، شما هم اگه فهمیدید به ما هم بگید تا اینجا اضافه کنمش.
مطلب وقفه رو هم اگه خوستید میتونید مطلب مقابل رو بخونید : آموزش جامع میکروکنترلر AVR جلسه۳
 
توجه : بحث کانتر برا تایمر ۰ و ۲ هستش و تو تایمر۲، اون ۲ تا پایه (که تو جلسه ۱۵ دربارش گفتم laugh ) برا بحث ساخت ساعت هستش.
 
موضوع مهم ۱ : یه موردی که من هنوز متوجه نشدم اینه که چرا اون دفعه اول که روی اون کلید(تو پروتئوس) کلید میکنم دفغه اول اتفاقی نمیوفته و از دفعه دوم به بعد برنامه کار میکنه، دلیلش رو نمیدونم اگه فهمیدم اینجا هم میگم، اگه شما میدونید بگید لطفا. good
با توجه به متن دیتاشیت مگا ۱۶ برا تایمر ۰ که میگه : "عمل مقایسه در تمام زمان ها رخ میده و مقدار ریجستر OCR0 همیشه با TCNT0 بررسی میشه."
The double buffered Output Compare Register (OCR0) is compared with the Timer/Counter value at all times
و یه متن دیگه دیتاشیت که میگه : "هر موقع مقدار دو ریجستر TCNT0 و OCR0 با هم برابر بشه تو کلاک بعدی وقفه مقایسه رخ میده و فلگ مربوط به مقایسه ۱ میشه"
Whenever TCNT0 equals OCR0, the comparator signals a match. A match will set the Output Compare Flag (OCF0) at the next timer clock cycle. If enabled (OCIE0 = 1 and Global Interrupt Flag in SREG is set), the Output Compare Flag generates an output compare interrupt
با توجه به دو جملسه بالا ببین خودتون میتونید به نتیجه ای برسید، من که هر چی فک کردم متوجه نشدم، حالا تو Eca هم مطرح کردم، بعد این که به جواب رسیدم شما رو هم مطلع میکنم، شما هم اگه میدونید بگید به ما.
 
موضوع مهم ۲ : یه مورد دیگه اینه که با توجه به این که ما از مد Ctc استفاده میکنیم لذا ریجستر های OCR0 , OCR1A مقدار TOP رو تعیین میکنن و هر موقع مقدار TCNTn با این دو ریجستر برابر بشه وقفه مقایسه رخ میده، و بعد از وقفه مقایسه مقدار TCNTn صفر میشه، حالا موردی که من متوجه نشدم اینه که چرا تو تایمر ۰ وقتی مقدار دو ریجستر با هم برابر میشه وقفه سرریز رخ میده. shock ، حالا اگه علتش رو فهمیدم اینجا میگم، اگه شما هم میدونید بگید.
 
شماتیک پروژه : 
شماتیک برا جفت پروژه یکسان هستش، فقط با توجه به تایمری که ازش استفاده میکنید، حالت اون کلید رو روی یکی از پایه های T0 ِا T1 قرار بدید.
آموزش AVR
 

پروژه کانتر با تایمر ۰

 

پروژه کانتر با تایمر ۱

 

دانلود پروژه کانتر با Avr | دو پروژه این مطلب

 
خوب این مطب هم توم شد، اگه پروژه ای چیزی با کانتر در نظر دارید بگید تا در صورت نیاز انجام بدم  و پروژش رو پیوست کنم.
در ضمن اگه متوجه نشدید ، اگه جایی رو مشکل دارید حتما بپرسید، و مطمئن باشید اگه بلد باشم جواب میدم و اگه هم بلد نباشم میگم بلد نیستم sarcastic .
فعلا یا علی. bye

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ السارِچین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
6

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    امیر

    سلام
    کد دستوری که برای تایمر 1 نوشتی اشتباه هستش، لطفا دوباره چک کن .

  2. Avatar

    مهمان

    حامد

    سلام
    هیچکدوم از پروزه ها کار نمیکنه
    مد سی تی سی انتخاب کردبین چرا پس مقدار ocr0رو صفر کردین؟

  3. Avatar

    مهمان

    پرهام فیروزی

    سلام و خسته نباشید.
    من یه کمک از شما می خواستم اگر لطف کنید کمکم کنید ممنون میشم.
    من یه انکودر 200 پالس ساختم اما وقتی میخوام پالس هاشو بخونم با atmega32 کلی پالس اضافه میشموره. در واقع زمانی که انکودر هم نمی چرخه بازم میشموره. من برایه شمارش از وقفه خارجی وهم از شمارش گر counter استفاده کردم .اگر میشه به من در نوشتن کدش کمک کنین.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      انکودر های مختلفی من دیدم—مکانیکی، الکترونیکی، 1 تومنی، 100 تومنی، و… laugh
      دقیقا بگو، یه عکس و یه لینک از انکودرت برام بفرست.
      خب من چطور بدونم مشکل کدار کجاس آخه laugh فعلا کاری رو گه گفتم رو انجام بده و کد و شماتیکت رو هم برام آپلود کن(تو پیکو فایل آپلود کن و لینکش رو برام بفرست همینجا)

  4. Avatar

    مهمان

    محمد

    سلام عالی بود ابن مطلب و مطلب قبلی
    استفاده کردم / ممنونsmile ربات تلگرامم جالب شده

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      برا ربات اگه نظری داشتید بگید، برا زیبایی سایت هم همین طور