تایمر ها :
به طور کلی تایمر به سه دسته تقسیم می شوند:
دسته اول :
· تایمر پایه: TIM6 & TIM7
· تایمر همه منظوره : TIM2,3,4,5
· تایمر پیشرفته : TIM1 & TIM8
این تایمر ها فقط در امکانات با هم متفاوت هستند.
دسته دوم :
Watchdog Timer
دسته سوم :
Systic Timer
این تایمر در هسته های آرم سری Cortex وجود دارد و برای تیک زدن سیستم عامل استفاده می شود و یک تایمر ساده بالا یا پایین شمار میباشد.
این مطلب برای تایمر های دسته اول می باشد.
این تایمرها چند رجیستر به شرح زیر دارند:
· رجیستر CNT : رجیستر اصلی که با هر پالس مقدار آن یکی کاهش یا افزایش (طبق تنظیم) می یابد.
· رجیستر ARR : رجیستر بارگذاری اتوماتیک تایمر است. وقتی شمارنده CNT برابر با مقدار این رجیستر شد به طور اتوماتیک صفر میشود. پس دوره تناوب تایمر توسط این رجیستر تنظیم می شود.
· رجیستر PSC : رجیستر تقسیم کننده فرکانس تایمر میباشد. این رجستر میتواند مقداری بین 1 تا 65535 داشته باشد.
· رجیستر RCR : رجیستر تکرار پریود تایمر می باشد. با هر بار بارگذاری مجدد تایمر توسط رجیسترARR ، یکی به مقدار این رجیستر اضافه می شود.
· رجیستر CR : رجیستر کنترل تایمر است. که تنظیمات فعال سازی ها در آن انجام میشود.
· رجیستر های کاربردی و متفرقه دیگر
CMSIS :
برای استفاده از تایمر ها توسط درایور های CMSIS دو نوع ساختار تعریف شده :
A. ساختار پایه تایمر : که ابتدا این ساختار را پر و تایمر را راه اندازی کنید.
· در این ساختار مقادیر : تقسیم کننده فرکانس ، بالا شمار / پایین شمار تایمر ، دوره پریود تایمر ، تقسیم کننده کلاک ، تکرار کانتر قابل تنظیم می باشند.
· تقسیم کننده کلاک (ClockDivision) در قسمت فیلتر های ورودی کلاک تایمر کاربرد دارد که برای کارهای عادی مقدار آن را صفر قرار دهید.
· مقدار تکرار کانتر(RepetitionCounter) را صفر قرار دهید.
B. ساختار های تخصصی : که بعد از ساختار اول ، این ساختار را پر کنید و برای تنظیم فرمان دهید . مثلا برای راه اندازی PWM به این نوع ساختار نیاز دارید.
به مثال شماره 9 و 10 دقت کنید.