چه زمان باید از کلمه کلیدی volatile استفاده کرد؟

در این پست قصد دارم در مورد کاربرد کلمه کلیدی volatile در برنامه نویسی میکروکنترلرها به زبان c صحبت کنم. دانستن اینکه volatile چیست و چه زمان باید از آن استفاده کرد، اهمیت بالایی  دارد. طوریکه استفاده نکردن از این عبارت در جای خود، می‌تواند موجب عمل نکردن برنامه شما شود.

ادامه ی مطلب

1+

تعریف کانفیگ های مختلف برنامه با کمک #define

فرض کنید شما برنامه نویس میکروکنترلر دستگاهی هستید که قرار است پس از گرفتن اطلاعات از یکسری سنسور، محاسباتی انجام دهد و نهایتاً نتیجه را بر روی نمایشگر به نمایش بگذارد. اوضاع خوش و خرم پیش می‌رود تا روزیکه مدیرعامل از شما درخواست یک نسخه نمایشی -Demo- برای نمایشگاه می‌کند.  این نسخه به جای اینکه اطلاعات لازم را از سنسورها بگیرد، از مقادیر ضبط شده درون حافظه استفاده می‌کند. در ادامه خواهیم دید که دستور پیش پردازنده #define چگونه به ما کمک می‌کند تا همزمان هر دو نسخه را در یک پروژه توسعه دهیم.

ادامه ی مطلب

1+

TrueSTUDIO – ابزار محبوبِ من برای برنامه نویسی STM32

اینکه سال‌ها درگیر انتخاب یک ابزار شوید بدون آنکه اقدامی انجام دهید، بدترین کار ممکن است. اما از طرفی اگر دیدید ابزاری بهره وری شما را افزایش می‌دهد، در تهیه و استفاده حداکثر از آن کم کاری نکنید. چراکه به مراتب بیشتر از هزینه اولیه‌ای که بابت استفاده از آن می‌دهید -مادی و معنوی- به شما سود می‌بخشد. در ادامه به معرفی مختصری از IDE یا محیط توسعه‌ برنامه نویسی TrueSTUDIO می‌پردازیم.

ادامه ی مطلب

1+

پروژه پیاده سازی بازی snake با دات ماتریکس – ورژن 1.0

اگر مطالب گفته شده در سلسله پست‌های “دوره رایگان آموزش مقدماتی میکروکنترلر STM32” را به خوبی دنبال کرده باشید، به حدی رسیده‌اید که آستین‌ها را بالا بزنید و شروع به پیاده سازی پروژه این دوره کنید. اما قبل از اینکه دست به کار شوید لازم است که توضیحاتی در خصوص سخت افزار مورد نیازمان بدهم.

ادامه ی مطلب

1+

کنترل 64 led از طریق 16 پایه – ساختار داخلی دات ماتریکس چگونه است؟

در تصویر زیر شما دو عدد دات ماتریکس – Dot matrix – مشاهده می‌کنید. بلوکی منظم از تعدادی LED که می‌تواند در بعضی جاها کار ما را در چیدن LEDها ساده‌تر کند. مثلاً اگر به تابلوهایِ روانِ داخل بانک‌ها یا اتوبوس‌ها دقت کرده‌ باشید. اغلب تشکیل شده از چندین دات ماتریکس کنار هم هستند.

دات ماتریکس - دیجیلاگیست

 

اگر دات ماتریکس شما هم 64 LED تک رنگ بر روی خود داشته باشد، خواهید دید که از سمت دیگر آن تنها 16 پایه بیرون آمده. به عبارتی تنها با 16 پین قرار است 64 LED را کنترل کنید. اما چگونه؟

ادامه ی مطلب

1+

دوره رایگان گیت به همراه جادی

اگر می‌دونید که گیت چیه و به چه درد می‌خوره که چه بهتر. اما اگر دوست دارید علاوه بر این بدونید که چه جوری می‌تونید ازش در کارهاتون استفاده کنید، توصیه می‌کنم حتماً یک نگاه به دوره رایگان گیت جادی بندازید.

ادامه ی مطلب

1+

ترفندی برای کم اثر کردن شکستن قفل میکروکنترلر

اگر می‌خواهید محصول خود را که مبنی بر میکروکنترلر است، به بازار یا به هر دلیلی به افرادی، ارائه دهید و در عین حال نگران کپی شدن آن و هدررفتن زحماتتان هستید. احتمالاً خواندن این مطلب برای شما خالی از لطف نباشد. در ادامه می‌خواهم برای شما از روشی صحبت کنم که حتی اگر کسی با شکستن قفل میکروکنترلر به کد هگز برنامه شما دسترسی پیدا کرد، نتواند به راحتی از آن استفاده کند. اگرچه توضیحاتی که در ادامه خواهید دید به طور خاص برای میکروکنترلر STM32 نوشته شده است، اما اصل روش برای سایر میکروکنترلرها نیز کاربردی است.

ادامه ی مطلب

1+

چقدر طول می‌کشد تا UART اطلاعاتم را بفرستد؟ – محاسبه زمان ارسال / دریافت با baud rate

در برنامه‌ای نیاز بود تا بدانیم هر بار ارسال 10 بایت دیتا از طریق UART، چقدر زمان می‌برد. می‌خواستیم با یک حساب سرانگشتی از طریق baud rate – باودریت – تعیین شده، حدود این زمان -چرا حدود؟- را به دست آوریم.

در این برنامه پورت سریال به صورت 8N1 یا به عبارتی هشت بیت دیتا، بدون هیچ پریتی و یک بیت برای پایان تنظیم شده بود. همچنین baud rate هم بر روی 19200 قرار داشت.

اما این اطلاعات چه به ما می‌دهند و از طریق آن‌ها چگونه می‌توانیم زمان مورد نیاز را محاسبه کنیم؟

ادامه ی مطلب

1+

انتخاب پین‌های مناسب برای پریفرال ( remap ) به کمک STM32CubeMX

یک ویژگی فوق العاده در میکروکنترلرهای STM32 این است که گاهی می‌توانید پین‌های پریفرال مورد نیاز خود را عوض کنید. به این کار اصطلاحاً remap کردن می‌گویند.  این کار می‌تواند دست شما را در کشیدن PCB و یا طراحی مدار بازتر کند.

ادامه ی مطلب

1+