قسمت هفتم: LED چشمک‌زن

0
138
LED چشمک‌زن
LED چشمک‌زن

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

اولین پروژه‌ای که برای هر نرم‌افزار جدید انجام می‌شود، برنامه LED چشمک‌زن است. در آموزش میکروکنترلر STM8 نیز همین‌کار را انجام می‌دهیم. تابع خروجی را با ساختن یک LED چشمک‌زن تست می‌کنیم. شماتیک برد Disco را مشاهده‌کنید و پین‌هایی که به LED ها متصل می‌شوند را بررسی‌کنید.

شماتیک برد Disco
شماتیک برد Disco

 

همچنین می‌توانید از STM8CubeMX نیز استفاده‌کنید.

در زیر بلوک دیاگرام داخلی پین‌های GPIO نشان‌داده شده‌است:

بلوک دیاگرام داخلی پین‌های GPIO
بلوک دیاگرام داخلی پین‌های GPIO

 

از آنجاکه هر I/O به‌طور مستقل قابلیت‌تنظیم دارد و گزینه‌های بسیاری با آن مرتبط است، بلوک‌زیر در نگاه اول پیچیده به‌نظر می‌رسد. گزینه‌های مختلف هر I/O را می‌توانید در جدول‌زیر مشاهده‌کنید:

گزینه‌های I/O
گزینه‌های I/O

 

در زیر توابع SPL مرتبط با ماژول GPIO نمایش‌داده شده‌است.

توابع SPL مرتبط با ماژول GPIO
توابع SPL مرتبط با ماژول GPIO

 

کدزیر را مشاهده‌کنید. این کد بدون دسترسی به رجیسترهای سنتی نوشته‌شده‌است. در اینجا همه‌چیز یک نامگذاری معنادار دارد، درست مانند نامگذاری در کتابچه راهنمای مرجع. با این وجود درک کد ساده است.

 

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

سخت افزار
سخت افزار

 

کد نمونه LED چشمک‌زن

#include "STM8S.h"

void main (void)
{

int i;
GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOC);

GPIO_Init(GPIOC, GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(GPIOD, GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_FAST); 

for(;;) 
{
GPIO_WriteReverse(GPIOC,GPIO_PIN_3);
GPIO_WriteReverse(GPIOD,GPIO_PIN_3);
for(i=0;i<10000;i++)
;
}
}

 

توضیح

خطوط زیر پیکربندی GPIO هایی که در کد مورد‌استفاده قرارگرفته‌اند را نشان می‌دهند. هربار که برای اولین‌بار سخت‌افزاری را مجدداً تنظیم یا راه‌اندازی می‌کنید، قبل‌از استفاده آن باید آن‌را پیکربندی کنید. گرچه این کار اجباری نیست، اما احتمال خطا در تنظیمات را حذف می‌کند.

GPIO_DeInit(GPIOD);
GPIO_DeInit(GPIOC);

 

پس‌از پیکربندی، می‌توان تنظیمات GPIO ها را انجام داد. ورودی‌ها می‌توانند دارای مقاومت داخلی یا بدون مقاومت داخلی باشند. خروجی‌ها می‌توانند نوع Push_Pull Totem_pole و یا نوع تخلیه باز باشد. هر پین می‌تواند به‌طور جداگانه پیکربندی شود و هیچ وابستگی به دیگر پین‌ها ندارد. در این کد GPIO PD3 به عنوان یک خروجی Push_Pull سریع تعریف‌شده‌است.

GPIO_Init(GPIOC, GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_FAST);
GPIO_Init(GPIOD, GPIO_PIN_3 , GPIO_MODE_OUT_PP_LOW_FAST);

 

بخش باقیمانده از کد در حلقه اصلی، به‌صورت‌زیر است:

for(;;) 
{
GPIO_WriteReverse(GPIOC,GPIO_PIN_3);
GPIO_WriteReverse(GPIOD,GPIO_PIN_3);
for(i=0;i<10000;i++)
;
}

 

در قسمت هشتم آموزش میکروکنترلر STM8 کلاک داخلی سیستم را آموزش خواهیم داد.با ما همراه باشید.

 

 

 

منبع: سیسوگ

برای این مقاله نظر بگذارید:

لطفا دیدگاه خود را بنویسید
لطفا نام خود را وارد کنید