Nrf 24 در اردوینو

ممنون مهندس.خیلی کامل بود.انصافا هر بار میخونم لذت میبرم.چون اینهارو قشنگ نفهمیده بودم احساس میکردم کل اموزش هارو نفهمیدم

سلام مهندس.ایام به کام.خطی که هایلایت شده،برام سوال بود که چرا char arry تعریف نکردیم و چرا 5بیت؟چرا 8بیت نه؟2020-03-23/1584937532-819437-photo-2020-03-23-08-50-49.jpeg

سلام دوست عزیز،
در این مثال ما از کتابخانه rf24.h و nrf24l01.h استفاده کردیم. کتابخانه ها توسط افراد و یا شرکت های دیگه نوشته میشن و برای راحتی کار ما هستن. هر کتابخانه یک دستورالعمل داره برای استفادش و این کتابخانه از شما میخواد که pipe address رو توسط یک بایت array با ۶ خونه بهش بدید. دقت کنید که ۶ بایت و نه ۶ بیت.
حالا چرا ما به جای ۶ بایت، ۵ بایت جلوش نوشتیم؟ این به خاطر این هست که ما متن رو داخل “” (quotation mark) قرار دادیم.
وقتی که شما یک متنی رو داخل “” بذارید، از نظر کامپایلر این یک string هست و در واقع آرایه ای از کاراکتر ها هست و خود به خود آخرش یک بایت به اسم null termination میذاره (برای مشخص کردن انتهای string) (مقدار این بایت آخر برابر با ۰ هست)
نکته بعدی اینکه هرچیزی که داخل “” قرار بگیره، به صورت متنی تفسیر میشه. پس “0” به معنی کاراکتر ۰ و نه عدد صفر هست. در جدول ascii برای هر کاراکتر یک مقدار عددی در نظر گرفته شده. پس “0” به معنی یک آرایه با دو خانه که اولین خانه عدد ۴۸ و خانه بعدی عدد ۰ می باشد. پس با این توضیحات، اون خطی که هایلایت کردید رو می تونیم اینطوری هم بنویسیم:
const byte address[6] =
{48,48,48,48,49,0}

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