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

آموزش میکروکنترلر های arm سری stm32f10x جلسه 8

دوستان سلام : امروز میخوام براتون یه اموزش کوتاه اما خیلی کاربردی بذارم  yes

آموزش میکروکنترلر های arm سری stm32f10x جلسه 8

SystickTimer

SystickTimer یک تایمر  24 بیتی که توی پردازنده های Cortex قرار گرفته.اساس کار این نوع تایم به این صورته که مقدار اولیه به تایمر میدیم و تایمر شروع به شمارش رو به پایین میکنه و وقتی که مقدارش به صفر رسید وقفه به ما میده. همین تمام acute ؛ فرکانس شمارش این تایمر برابر مقدار فرکانس پردانده است ( 72000000HZ )؛ از این تایمر برای ساخت delay زیاد استفاده میشه؛ حالا میخوایم با استفاده از SystickTimer  فانکشن delay_ms بسازیم و توی کد هامون ازش استفاده کنیم.

کد برنامه :

توضیح :

خط 1 : یک فانکشن delay_ms با ورودی DELAY میسازیم.که مقدار میلی ثانیه ای رو که میخوایم تو برنامه بهش بدیم.

خط 3 : با استفاده از تابع (SysTick_Config(x  مقدار اولیه ای که میخوایم SystickTimer از اونجا شروع به شمارش کنه و پاین بیاد رو بهش میدیم؛ حالا چرا من 72000 رو بهش دادم؟چون فرکانس پردازنده ما 72000000 هرتز هست و من میخوام یک میلی ثانیه رو تولید کنم بنابر این اگر SystickTimer از 72000 با فرکانس 72 مگا هرتز شروع به شمارش کنه و به مقدار صفر برسه 1 میلی ثانیه طول میکشه و ما اینطوری میتونیم زمان 1 میلی ثانیه رو بسازیم :
72000000 / 72000 = 0.001

خط 7 : بعد از اینکه مقدار SystickTimer  صفر شد به  وقفش پرش میکنه که وقفه SystickTimer  هم مثل دیگر وقفه ها در فایل startup  قرار داره ( خط 76 ) از اونجا پیداش میکنیم و تابع ()void SysTick_Handler رو میسازیم و به هنگام رخ دادن وقفه برنامه به داخل تابع پرش میکنه، داخل تابع دستوراتی که به هنگام وقفه باید اجرا شوند رو مینویسم.

 

کد بالا اینطوری کار میکنه که تایمر از 72000 میشماره رو به پاین به صفر که رسید میپره داخل تابع وقفه اونجا یدونه کم میکنه از delay بعد دوباره میره از 72000 شروع به شمارش رو به پاین میکنه تا صفر بشه وارد وقفه بشه و از delay یکی کم کنه اینقدر این اتفاق تکرار میشه تا مقدار delay  برابر صفر بشه و از وایل خارج بشه؛ میتونید کد بالا رو به عنوان delay_ms پروژه هاتون استفاده کنید. victory

 

خدانگه دارتون.

گروه پرسش و پاسخ الکترونیکی در سروش
تعداد مطالب : 8 تا
Avatar پيامبر خدا صلى الله عليه و آله : هر علمى در روز قيامت براى صاحب خود وبال است، مگر كسى كه به علمش عمل كند.
ارسال دیدگاه
1

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

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

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

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

  1. Avatar

    مهمان

    حامد

    سلام از کتابخانه cmsis در این پروژه استفاده شده؟ من نمیدونم ببخشید. اگه ممکنه اضافه کردن کتابخانه cmsisبه من
    بیسواد بگید ممنون