نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
مهدی دمیرچیلو

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

193

به نام خدا : تو این مطلب از آموزش 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

تعداد مطالب : 367 تا
جنگ ما فتح قدس را به همراه خواهد داشت. [ امام خمینی (ره) ]
ارسال دیدگاه
6
نظرات این مطلب بسته شده است.
  1. امیر

    مهمان

    امیر

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

  2. حامد

    مهمان

    حامد

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

  3. پرهام فیروزی

    مهمان

    پرهام فیروزی

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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

  4. محمد

    مهمان

    محمد

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

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

      مهدی دمرچیلو

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