پر بحث ترین ها
مسابقه اول سیسوگ (مسابقه اول: درک سخت افزار) انتقادهای زیادی رو در پی داشت تا جایی که حتی خودمم به نتیجه مسابقه...
- 2 سال پیش
LCD گرافیکی یکی از مهم ترین پارامترهای موجود در طراحی انواع مدارات الکترونیکی پیچیده و حتی ساده است ، نمایش وضعیت و...
- 4 سال پیش
ریموت کنترل امروزه کاربرد زیادی پیدا کرده است؛ از ریموتهای درب بازکن تا ریموتهای دزدگیر و کنترل روشنایی همه از یک اصول اولیه پیروی میکنند و آنهم ارسال اطلاعات بهصورت بیسیم است....
- 5 سال پیش
امنیت همیشه و در همهی اعصار، مقولهی مهم و قابلتوجه ای بوده و همیشه نوع بشر به دنبال امنیت بیشتر، دست به ابداعات و اختراعات گوناگونی زده است. ریموت کنترل یکی از این اختراعات است. در این مقاله، به بررسی امنیت انواع ریموتهای کنترل خواهیم پرداخت....
- 5 سال پیش
نزدیک به 5 ماه از مسابقه دوم سیسوگ میگذره و فکر کردم که بد نیست یک چالش جدید داشته باشیم! البته چالشها...
- 2 سال پیش
بزنم میکروکنترلر را بسوزونم اونم تو این شرایط!، طراحی مسابقه از اون چیزی که به نظر میرسه سختتر است، باید حواست باشه...
- 11 ماه پیش
آموزش قدم به قدم راه اندازی +NRF24L01 با کتابخانه سازگار با انواع میکروکنترلرها و کامپایلرها قبل از اینکه قسمت بشه با ماژول...
- 3 سال پیش
چند ماهی هست که تب بیت کوین و ارزهای دیجیتال خیلی بالا رفته! چه شد که این پست را نوشتم همانطور که...
- 3 سال پیش
در قسمت اول به یکسری اطلاعات کلی ماژول mc60 پرداختیم، با نرم افزار QNavigator کار کردیم و یک هدربرد هم برای کار...
- 3 سال پیش
حدود ۷ ماه پیش، مسابقه سوم سیسوگ رو برگزار کردیم و کلی نکته در مورد خواندن رشتههای ورودی را بررسی کردیم. فکر...
- 1 سال پیش
سلام. ممنون ازین مطلب عالی.
بنظرتون اگه بخوایم از لحاظ سرعت اجرا برسی کنیم کدی که از جدول استفاده میکنه سریع تره یا کدی که تو چالش انتهایی نوشته شده؟
قطعا جدول سریعتره – چون فقط به اندازه یک دسترسی به حافظه زمان میبره 🙂
احساس پوچی کردم ای بابا :)))
چرا احساس پوچی دوست عزیز !
تا وقتی میشه چیزای جدید یاد گرفت، جای بسیار زیادی برای امیدواری هست
سلام. ممنون از سایت خوبتون. یه سوال داشتم. من برنامه نویسی avr كار كردم و از سخت افزار هم تا حدودی سر در میارم. سال بعد دانشكاه میرم. خواستم ببینم arm یاد بگیرم بهاره یا ای وی ار رو ادامه بدم. و این كه شركت های بزرك مثلا تسلا یا اسپیس ایكس و… كه پیچیده ترین كد نویسی ها رو برای سخت افزار انجام میدن از چه تراشه هایی استفاده میكنن؟ آیا تراشه های arm به اندازه كافی قدرت دارن؟ اكر كسی بخواد برنامه نویسی در اون حد بیشرفته رو یاد بگیره باید چیكار كنه؟
سلام دوست من – خودتون محدود به نوع پردازنده نکن
هر میکروکنترلری برای هدفی ساخته شده و اینطور نیست مثلا با یادگیری یک مدل پردازنده همه کارهایی که میخوای بکنی رو بتونی پوشش بدی – اگه بخوام بهت توصیه ای داشته باشم میگم اصول رو یاد بگیر از بیس یاد بگیر
مثلا پروتکل uart یه استاندارده که همه جا به همون شکل هندل میشه – حالا از یه میکرو به میکروی دیگه فقط چند تا رجیستر تغییر میکنه به همین سادگی !!!
شرکت های بزرگ بسته به کاری که میخوان انجام بدن سخت افزار رو انتخاب می کنند.
http://graphics.stanford.edu/~seander/bithacks.html#CountBitsSetParallel
بله متشکر
مطالب لینکی که بالا دادم فوق العادست برای همین Counting bits set اومده ۷ روش روگفته
کلی چالش دیگه هم داره
—سوال —-
منبع کامل آموزش دقیق C با رویکرد embedded چیزی معرفی می کنید؟ مثلا همین volatile رو خیلی جاها توضیح نداده
چالش های دیگه اش هم جالبه 🙂
— جواب —
نه متاسفانه ؛ فکر نمیکنم زبان سی فرقی بین امبدد و خیر امبدد داشته باشه ؛ شناخت از سیستم های امبدد هست که کمک میکنه برنامه شما خاص اون سخت افزار باشه یا نباشه
فکر کنم دوستمون آقا محمد منظورشون از منبع همین لینک بوده ؛ ممنون که پست کردید این لینک رو ؛ واقعا جالبه ؛ توضیحات خیلی خوبی هم داره
مشاهده اش رو پیشنهاد میکنم به تمام دوستان
سلام ممنون از سایت خوبتون. اما کاش منابع رو هم ذکر میکردید. تا الان که توی سایت میگشتم هیچ پستی منبع نداره.
وقتی خودتون اصرار دارید مطالب با منبع ذکر بشن پس بهتره خودتون هم منبع رو ذکر کنید?
سلام دوست گرامی
تمام مطالبی که ترجمه هستند یا از منبعی بازنشر شده باشند دارای منبع هستند ِ به عنوان نمونه تمام آموزش های STM8 یا آموزش ها و رفرنس Arduino و… همه دارای منبع هستند ِ اگر میبینید مطلبی دارای منبع نیست ِیعنی از اول نوشته شده توسط نویسنده نه این که از جایی کپی شده باشد که نیاز به ذکر منبع داشته باشد
فکر میکنم همه سایت رو ندیدید !!!
(unsigned char *) &data; این یعنی چی
سلام ؛
&data در واقع آدرس حافظه ای که متغییر data توی اون ذخیره شده رو بر میگردونه ؛ خوب حالا این حافظه از چه نوعی هست ؟ خوب معلومه دیگه static const unsigned char ؛ وقتی بخوایم اونو تو یه اشارهگر از نوع unsigned char بریزیم کامپایلر خطا میده ! برای این که با این خطا مواجه نشیم با این شکل نوشتاری ((unsigned char *) &data;) به کامپایلر میگیم داداش تو فکر کن متغییر ما از نوع unsigned char* هستش 🙂
با سلام و خسته نباشید .
اون کدی که با چند خط دیفاین جول رو تولید میکنه داره از توابع بازگشتی استفاده میکنه و این خطB6(0), B6(1), B6(1), B6(2) درواقع کل جدول رو تولید میکنه .به این صورت کهB2(n) مربوط به اعداد 2بیتی است .و B2(0) میشه 0,1,1,2
اگر برای اعداد 3 بیتی هم بخواهیم محاسبه کنیم 0,1,1,2,1,2,2,3 اگر کمی دقت کنیم دنباله مربوط به 3 بیتی میشهB2(0),B2(1) یا به طور کلی B3(n)=B2(n),B2(n+1)
به طور خلاصه هر بار که یک بیت به طول عدد اضافه میشه دنباله جدید عبارت است از دنباله مربوط به حالت قبلی که جملاتش 1 واحد اضافه شده و در ادامه دنباله قبلی اومده . به طور مثال برای 4 بیت میشه B3(0),B3(1) که اگر به جای b3 معادل اون بر اساس b2 رو بنویسیم میشه
B2(0),B2(1),B2(1),B2(2) که در حالت کلی B4(n)=B2(n),B2(n+1),B2(n+1),B2(n+2) که همون فرمول جدول هست منتها برای صرفه جویی حالتهای B3(n) و B5 و B7 حذف شدن . و فرمولها مستقیم بر اساس 2 مرحله قبل نوشته شدن .
ولی کد آخری فهمیدنش واقعا مشکل هست!!!
بسیار عالی ^_^ ؛ بله همیطوره که میگید
در مورد تابع آخر وقتی بیتی خودتون تجزیه تحلیلش کنید خیلی راحت تر میشه درکش 🙂
برای منم اولش سخت بود و بی معنی