قسمت هجدهم : تایمر 4

قسمت هجدهم : تایمر 4

قسمت هجدهم : تایمر 4
قسمت هجدهم : تایمر 4

سیسوگ در قسمت هفدهم آموزش میکروکنترلر STM8 تایمر 2 را به شما معرفی کرد. در این قسمت از مجموعه مقالات آموزش میکروکنترلر STM8  قصد دارد تایمر 4 را آموزش دهد. با سیسوگ همراه باشید.

تایمر 4 :

در میکروکنترلر، تایمر 4 نسبت به دیگر تایمرها از اهمیت بالاتری برخوردار است. این مقاله، نحوه اسکن و نمایش اطلاعات روی سون سگمنت با استفاده از وقفه را نشان می دهد، در حالیکه حلقه اصلی می تواند اطلاعات را نمایش دهد.

اتصالات سخت افزاری

اتصالات سخت افزاری تایمر 4 در STM8

 

نمونه کد تایمر 4

main.c

(stm8s_it.h (top part only

stm8s_it.c 

stm8_interrupt_vector.c

توضیحات

کلاک داخلی و CPU هر دو روی 2 مگاهرتز کار می کنند.

تایمر 4 یک تایمر پایه است و بهتر است آن را برای کارهای ساده استفاده کنیم. ما آن را با مقدار پیش فرض 32 و بارگیری شمارنده روی 128 تنظیم کردیم. این مقادیر باعث می شود تایمر 4 سرریز کند و وقفه ای 2ms ای ایجاد کند. که این مدت زمان برای نمایش اطلاعات بر روی یک سون سگمنت کافی است. در اینجا 4 سون سگمنت در طول 8ms به روز می شوند ولی چشم شما تمامی اطلاعات را در یک لحظ می بیند، در واقع در اینجا به مغز انسان حقه میزنیم. در نهایت، باید وقفه های که مورد نیاز هستند را فعال کنیم.

اولین مثال از وقفه ها در مجموعه آموزش میکروکنترلر STM8 را به یاد می آورید؟ همان طور که در پست های قبل دیدیم  ما باید به کامپایلر بگوییم که از کدام وقفه استفاده می کنیم. با توجه به دیتاشیت مشاهده می شود که آپدیت و سرریز تایمر 4 در IRQ4 قرار دارد. بنابراین باید این تغییرات را در فایل stm8_interrupt_vector.c انجام دهیم:

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

تایمر 4 در STM8

سیسوگ در قسمت نوزدهم از مجموعه آموزش میکروکنترلر STM8 تایمر 2 (PWM) را مورد بررسی قرار می‌دهد. با سیسوگ همراه باشید.

مرجع

لینک‌های دانلود

مطالب مرتبط

 

 

حمایت از electronic girl

خوشحال میشیم برای تداوم و کیفیت ما رو حمایت کنید.

0 نفر

پــــســنــدیـده انـد

توجه

electronic girl
electronic girl

دوستدار الکترونیک

دیدگاه ها

6 دیدگاه

  • حسین سعیدی
    ۱۸ بهمن ۱۳۹۹

    سلام بسیار عالی
    امکانش هست خود فایل کامل پروژه رو هم بصورت rar پایان آموزش بزارید !!؟

    • Zeus ‌
      zeus
      ۵ خرداد ۱۴۰۰

      سلام دوست عزیز
      پیشنهاد خوبی هست – انشالله در اموزش های بعدی لحاظ میکنیم
      متشکرم برای حسن توجه شما

  • الی
    ۲۸ مهر ۱۳۹۹

    سلام ممنون از مطالب خوبتون و تشکر از زحماتتون
    من این برنامه رو اجرا کردم و یه ایرادی تو کد وجود داره،پایه B4 مربوط به حرف g سگمنته اما تو خط 33 و 34 فایل stm8-it.c پایه d6 رو دیفاین کرده در حالیکه به جایی وصل نیست

    • Zeus ‌
      زئوس Zeus
      ۳۰ مهر ۱۳۹۹

      سلام – ممنون برای نکته بینی که دارید – بله درسته – عکس رو اصلاح می کنیم

  • Winiston ZZZ
    Winiston ZZZ
    ۴ مرداد ۱۳۹۸

    بعد از خوندن مطلب به این فکر افتادم که الان بنده دقیقا باید چیکار کنم ؟
    چرا تو فایل main تابع دستورات عملکرد وقته وجود نداره ؟
    چرا باید تو فایل “stm8s_it.c” اون کد هارو وارد کنیم درصورتی که اصولا باید توی main باشند . اصلا یه فایل به همین اسم به پیشفرض تو لایبرری ها هست با مقادیر کاملا متفاوت .
    توی تلگرام بهتون پیام دادم گفتم که این اموزشات مربوط به stm8 مخصوصا مخصوصا وقفه خارجه و داخلی ، شدیدا نیاز به باز بینی دارند. چون ممکنه یک تازه کار مثل من بیاد هیچی حالیش نشه .

    • Zeus ‌
      زئوس Zeus
      ۷ مرداد ۱۳۹۸

      سلام – البته قبول دارم مقداری توضیحات اجمالی بود ولی اینطور هم نبود که مخاطب چیزی برداشت نکنه 😐
      اما این که وقفه ها رو توی یه فایل جدا میذاریم تنها برای مدیریت بهتر است اگر نه به سادگی میتونید همونطور که گفتید توی مین برنامه هم تعریفشون کنید.
      در مورد مباحث اینتراپت – مجددا نگاه میکنم امیداورم که بتونیم بهترش کنیم.
      متشکرم

پر بحث ترین ها

مسابقه دوم : چالش برنامه نویسی به زبان C

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

Zeus ‌ Zeus ‌
  • 2 سال پیش

راه اندازی LCD گرافیکی Nokia 1661 و دانلود کتابخانه آن

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

Zeus ‌ Zeus ‌
  • 4 سال پیش

ریموت کدلرن و چکونگی دکد کردن آن به همراه سورس برنامه

ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموت‌های درب بازکن تا ریموت‌های دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی می‌کنند و آن‌هم ارسال اطلاعات به‌صورت بی‌سیم است....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه سوم: استخراج داده از رشته ها در زبان C

نزدیک به 5 ماه از مسابقه دوم سیسوگ می‌گذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالش‌ها...

Zeus ‌ Zeus ‌
  • 2 سال پیش

همه چیز درباره ریموت کنترل‌های هاپینگ

امنیت همیشه و در همه‌ی اعصار، مقوله‌ی مهم و قابل‌توجه‌ ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموت‌های کنترل خواهیم پرداخت....

Zeus ‌ Zeus ‌
  • 5 سال پیش

مسابقه ششم: بزن میکروکنترلر را بسوزون!

بزنم میکروکنترلر را بسوزونم اونم تو  این شرایط!، طراحی مسابقه از اون چیزی که به نظر می‌رسه سخت‌تر است، باید حواست باشه...

Zeus ‌ Zeus ‌
  • 9 ماه پیش

آموزش قدم به قدم راه اندازی +NRF24L01

آموزش قدم به قدم راه اندازی +NRF24L01  با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...

رسول خواجوی بجستانی رسول خواجوی بجستانی
  • 3 سال پیش

ساخت ماینر با FPGA و ARM

چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...

Zeus ‌ Zeus ‌
  • 3 سال پیش

مسابقه چهارم: کدام حلقه سریع‌تر است؟

حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشته‌های ورودی را بررسی کردیم. فکر...

Zeus ‌ Zeus ‌
  • 1 سال پیش

کار با ماژول تمام عیار mc60 – قسمت دوم – راه اندازی OpenCPU

در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...

Mahdi.h   Mahdi.h  
  • 2 سال پیش
سیـــســـوگ

مرجع متن باز آموزش الکترونیک