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

آموزش آرم stm32f103 جلسه ۵ کانفیگ اولیه تایمر

332

خب با تاخیری طولانی بریم سراغ آموزش آرم stm32f103 جلسه ۵ کانفیگ اولیه تایمر ؛ اولا از همه دنبال کننده ها عذر خواهی میکنم چون بدلیل کمبود وقت نتونستم جلسه ۵ رو طبق برنامه جلو ببرم.
آموزش آرم stm32f103 جلسه ۵ کانفیگ اولیه تایمر

آموزش آرم stm32f103 جلسه ۵ کانفیگ اولیه تایمر


خب میریم سراغ کانفیگ یک سری تایمری که رو این سری از میکروکنترلر ها هستش به اسم SysTick این تایمر توسط خود ارم ارایه شده و از تایمر سایر قسمت های میکرو کنترلر جدا هست و کاربردش دقیقا اینجاست که برای تنظیم زمان ها توی سیستم عامل ازش استفاده میشه
حالا ما ی جور دیگه هم ازش استفاده میکنیم smile
این تایمر هیچ ایشنال خاصی لازم نداره فقط باید یک فرکانس کاری رو برای اون تعریف کنیم و وقفه اون رو پیکر بندی کنیم به همین سادگی راه اندازی میشه
برای تنظیم کلاک تایمر یک تابعی داریم توی spl به این اسم :

این تابع میاد یک ورودی میگیره و اون رو به عنوان کلاک روی تایمر ست میکنه حالا من باید این رو کانفیگ کنم و به ورودی این تابع عدد بدم؛ برای زمان ۱ میلی ثانیه ( پریود ۱ میلی ثانیه ( اینجوری مینویسم که :

خب حالا باید یک وقفه برای این تایمر در نظر بگیریم که تابع وقفه این تایمر هم اماده هست فقط کافیه کپی و پیست کنیم؛ اینم تابع وقفه این تایمر :

خب به همین سادگی این تایمر راه اندازی شد حالا این تایمر هر ۱ میلی ثانیه تابع  SysTick_Handler رو اجرا میکنه smile
اینم دانلود کل پروژه و کارایی که تا اینجای اموزش انجام دادیم.

خب انشالله سری بعد اموزش میریم سراغ ساختن دستورات تاخیری دقیق با همین تایمر یعنی توابع delay که جلسات قبل نوشتیم زمان دقیقی رو ارایه نمیکردن و همش تقریبی بود رو دستکاری کنیم و به کمک این تایمر دیلای های دقیق رو بسازیم.

منو هم تو نماز هاتون دعا کنید  smile
با نظراتتون منو کمک کنید ( بتونم فیدبک عملی بگیرم از اموزش )
متشکرم

sexlocals

درباره : 
تعداد مطالب : 20 تا
مهدی زمانی هستم متنفر از کلیشه های تکراری پادگان انجام پروژه های التیوم و برنامه نویسی میکروکنترلر پذیرفته میشود تلگرام : @stm32f اینستاگرام:zamanimahdi77 ایمیل:timahdizamani@gmail.com
بقیه جلسات : آموزش آرم stm32f103
ارسال دیدگاه
11
نظرات این مطلب بسته شده است.
  1. sami

    مهمان

    sami

    ببخشید من با تایمر systick یه تابع تاخیر delay ساختم که تو برنامه اصلی ازش استفاده کردم. این تابع تاخیر رزوشن های ۱میکرو ثانیه، ۱ میلی ثانیه و ۱ ثانیه رو داره.
    حالا مشکلم اینه که واسه ساختن یک ثانیه با تایمر systick وقتی موقع کانفیگ کردن با دستور SysTick_Config عدد ۷۲۰۰۰۰۰۰ رو بهش میدم کار نمیکنه. ولی برای بقیه موردا میلی ثانیه و میکروثانیه کار میکنه. میخواستم دلیلشو بدونم.
    ممنون میشم راهنماییم کنید

    مشاهده پاسخ ها (1)
    • مهدی زمانی

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

      مهدی زمانی

      چون اون مقدار مقدار ماکزیمم تایمر بیشتره برای اینکار شما میتونید تایمر روی ۱ میلی ثانیه ایببندید و بعدا توی وقفه تایمر با مقایسه اضافه کردن به یک متغیر و مقایسه اون متغیر با مقداری که لازم دارید در قالب یک شرط هر مضربی از میلی ثانیه رو که نیاز دارید برای خودتون به صورت نرم فازاری بسازید

  2. mohamad

    مهمان

    mohamad

    سلام
    الان از systick کجا استفاده کنم؟داخل main.c برای تاخیر بنویسم
    systick(1000);
    الان این تاخیر یه ثانیست؟

  3. بهزاد

    مهمان

    بهزاد

    ضمن تشکر چندین باره ، مطلبی وجود داره که میخواستم بگم و نظرتونو بدونم. قبلش هم اینو بگم که من در arm صفر صفر صفر هستم. میخوام بدونم وقتی کامپایلر های iar و keil وجود داره چرا باید با این کامپایلر arm رو یاد بگیریم؟ فکر میکنم این سوال اساسی هست . قصدم از این سوال ایرادگیری نیست ، دنبال دلیلش هستم میدونید چرا؟ فرض کنید شما بعد از تلاش زیاد تونستید به این کامپایلر و توابعش مسلط بشید . خب اگر بدلیل گسترده نبودن و عمومی نبودن این کامپایلر بعدا” این سوال پیش بیاد که خب چرا از اول چیز عمومی تری( مثلا” keil ) یاد نگرفتم ؟ چرا ؟ چون بیشتر برنامه ها و فروم ها در مورد این کامپایلر صحبت میکنن. آدم های باتجربه بیشتری هم وجود داره که میتونی ازشون کم بگیری و یا حتی به دیگران یاد بدی.
    باز هم ازت تشکر میکنم بخاطر وقتی که برای آموزش میگذاری. من برای نوشتن همین چند خط که تازه سوالمم هست به خودم فشار اوردم !! اونوقت شما وقت میذاری با این همه دردسر مطلب مینویسی . کسی درک نکنه من یکی میدونم چقدر شما زحمت میکشی . مرسی

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

      مدیر سایت

      مهدی دمرچیلو

      سلام.والا کامپایلری(نرم افزاری) به نام آرم من نشنیدم
      کیل و iar رو شنیدم
      من خودم کیل کار میکنم.و از توابع اماده کیل استفاده نمیکنم و با رجیستر ها کار میکنم.لذا وقتی بخوام برم سمت iar زیاد اضیت نمیشم چون فقط باید نام رجیسترها رو تغیر بدم و کار خاصی انجام نمیدم.
      لذا چون ما با رجیسترها کار میکنیم تغیر دادن کامپایلر برامون زیاد سخت نیست

      • بهزاد

        مهمان

        بهزاد

        منظور من از اون جمله فقط با قرار ندادن یک “،” تغییر کرد. درستش اینه: ” چرا باید با این کامپایلر ( embitz ) ، arm رو یاد بگیریم؟ ”
        آقا مهدی عزیز من الان یه کم سرچ کردم و فرق ادیتور و کامپایلر رو کمی متوجه شدم( ما که عرض کردیم صفریم!! ) من تا الان با کدویژن یه کارایی میکردم راستش نمیدونم ادیتورش کدوم بود !!
        سوال: آیا keil و IAR هم ادیتور جداگانه ای دارن؟
        میشه یه اطلاعات کلی در مورد این موضوعات مقدماتی و ابتدایی در اختیار ما بذاری؟ تو سایتا چیز زیادی ندیدم ولی تا دلتون بخواد مطلب کپی شده از همدیگه هست!

    • مهدی زمانی

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

      مهدی زمانی

      در بی نظیر بودن iar شکی نیست اما وقتی یکم باهاش کار کنید متوجه میشید محیطی مثل نوت پد ویندوز داره
      برای کیل هم کرک شده هستش
      به صورت کلی به نظر بنده embitz چنتا ویژگی بزرگ داره یکی کم حجمه دوم اینکه رایگانه و سوم اینکه gcc هست ولی در کل این انتخاب ها سلیقه ای هست و هر کسی میتونه بر اساس سلیقش انتهخاب کنه و من اینو انتخاب کردم باهاش هم مشکلی نداشتم تا حالا که بخوام سراغ چیز دیگه برم

  4. ali

    مهمان

    ali

    سلام، دستت درد نکنه خیلی خوب بود،
    راستی الان امکان برنامه نویسی میکرو stm32 با نرم افزار simulink و matlab هم هست داخل خود سایتش برین و نرم افزار st mat رو سرچ کنین

  5. Amin

    مهمان

    Amin

    سلام
    عالی بود دوست عزیز
    منتظر اموزش های بعدی شما هستیم
    سپاس گذارم پیشاپیش

    مشاهده پاسخ ها (1)
    • مهدی زمانی

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

      مهدی زمانی

      تقریبا نوشته شده و به زودی تمام میشه

  6. محمد

    مهمان

    محمد

    فدات
    محمد عزیزی