انتقل إلى المحتوى

مذكرات تطوير مكتبة HAL - المؤقت العام TIM

في المقال السابق، تم تقديم فكرة مبسطة عن أنواع المؤقتات الثلاثة في STM32F4، وتم توضيح المؤقت الأساسي بتفصيل. في هذا المقال، سنستمر في استعراض المؤقت العام.

المبادئ الأساسية

في STM32F4، تتوفر المؤقتات العامة TIM2-TIM5 وTIM9-TIM14.

خصائص المؤقت العام

في STM32F4، يتميز المؤقت العام بالخصائص التالية:

  • مؤقت 16/32 بت للعد التصاعدي والتنازلي وإعادة العد التصاعدي/التنازلي تلقائيًا.
  • مقسم قابل للبرمجة بـ 16 بت لتقسيم تردد ساعة المؤقت (بمعامل تقسيم يتراوح بين 1 و 65536).
  • 4 قنوات مستقلة تستخدم للتقاط الإدخال، والمقارنة، وتوليد إشارة PWM (بأوضاع الحواف والتوجيه المركزي)، وتوليد نبضة واحدة.
  • إمكانية التحكم في المؤقت باستخدام إشارة خارجية وإمكانية توصيل عدة مؤقتات بدائرة تزامن.
  • إطلاق طلبات المقاطعة / DMA عند حدوث الأحداث التالية:
    • التحديث: تجاوز/تحتوي العداد، تهيئة العداد (بواسطة البرنامج أو المشغل الداخلي/الخارجي).
    • حدوث حدث (بدء العداد، إيقافه، تهيئته، أو عند تشغيل العداد بواسطة مثبط داخلي/خارجي).
    • التقاط الإدخال.
    • المقارنة.
  • دعم تشفير الزيادة (القطبي) لمُراقب موقع العداد ودارة مستشعر الهول.
  • إمكانية استخدام إشارة تشغيل العداد الخارجية أو توليد التيار بشكل دوري.

مرجع شائع لوظائف المؤقت العام

فيما يلي مرجع للوظائف المألوفة للمؤقت العام، والتي تشابه وظائف المؤقت الأساسي:

  • HAL_TIM_Base_Init(): تهيئة وحدة الزمن الأساسية.
  • HAL_TIM_Base_DeInit(): تعطيل المؤقت، على عكس الإعداد.
  • HAL_TIM_Base_MspInit(): دالة التهيئة MSP، وسيتم استدعاؤها تلقائيًا أثناء التهيئة للمؤقت.
  • HAL_TIM_Base_MspDeInit(): العكس.
  • HAL_TIM_Base_Start(): تشغيل المؤقت.
  • HAL_TIM_Base_Stop(): إيقاف المؤقت.
  • HAL_TIM_Base_Start_IT(): تشغيل المؤقت بوضع المقاطعة.
  • HAL_TIM_Base_Stop_IT(): إيقاف المؤقت بوضع المقاطعة.
  • HAL_TIM_Base_Start_DMA(): تشغيل المؤقت بوضع DMA.
  • HAL_TIM_Base_Stop_DMA(): إيقاف المؤقت بوضع DMA.

إخراج إشارة PWM بتردد 1 كيلوهرتز ونسبة تعبئة 50%

في هذه التجربة، سنستخدم المؤقت العام لإخراج إشارة PWM بتردد 1 كيلوهرتز ونسبة تعبئة 50%، ويمكن رؤية الموجة الناتجة باستخدام جهاز العرض.

تكوين المؤقت العام في CubeMX

أولاً، سنقوم بفتح صفحة تكوين الساعة في CubeMX. نظرًا لأن المؤقت العام متصل بحافلة APB2 عالية السرعة، يجب علينا البحث عن تردد الساعة لمؤقت APB2 وتسجيله (180 ميجاهرتز):

رابط الصورة

ثم، سنجد المؤقت TIM8 في الجانب الأيمن وسنقوم بتكوين القناة 1 (Channel 1) كإخراج PWM (PWM Generation CH1). لكي ننشئ إشارة PWM بتردد 1 كيلوهرتز، يجب علينا تكوين المعلمات

```arabic
تشغيل PWM في وحدة التوقيت TIM8 مستخدما الدالة `HAL_TIM_PWM_Start` على قناة TIM_CHANNEL_1.

// تعيين نسبة الواجب على أن تكون 500 (500 هرتز / 1 كيلو هرتز = 50%)
__HAL_TIM_SetCompare(&htim8, TIM_CHANNEL_1, 500);

/* USER CODE END 2 */
```

بعد ذلك، قم بتجميع الشيفرة وحرقها على الجهاز المستهدف. يمكنك مراقبة الموجة المنبعجة باستخدام جهاز الاستشعار (الأوسيلوسكوب) وعرضها كما هو موضح في الصورة:

صورة الموجة

المراجع والشكر

عنوان النص: https://wiki-power.com/ يتم حماية هذا المقال بموجب اتفاقية CC BY-NC-SA 4.0، يُرجى ذكر المصدر عند إعادة النشر.

> تمت ترجمة هذه المشاركة باستخدام ChatGPT، يرجى [**تزويدنا بتعليقاتكم**](https://github.com/linyuxuanlin/Wiki_MkDocs/issues/new) إذا كانت هناك أي حذف أو إهمال.