پاسخ : Re: avr با طعم شئی گرایی. c++ vs c
کاملا درسته. طبق چیزی که من تا الان فهمیدم، تکنیک خوب برای استفاده از c++ تو سیستم های embedded اینه که از ویژگی های مفیدش فقط جاهایی که واقعا لازمه استفاده بشه، و بقیه برنامه مشابه یه برنامه کلاسیک c نوشته بشه. از اونجایی که بیشتر کد های c برای c++ هم مفهوم هستن، این کار شدنی به نظر میرسه. مثلا در مورد شی گرایی، هر جا لازمه یه کلاس و شی تعریف میشه، و هر جا لازم نیست، به صورت معمولی با متغیر ها کار میشه. البته نمیدونم در عمل میشه یه بخشی از برنامه دائما با اشیا کار کنه و بقیه برنامه معمولی باشه یا نه. از اونجا که چند کتابخونه با این سبک دیدم، فکر می کنم بشه.
منظور از تعریف واحد های حافظه چیه؟ فضای ذخیره داده ها که با keyword مشخص میشه؟ مثل auto, static و ... یا اندازشون؟ مثل uint8_t و unsigned char که 8 بیتی هستن ؟ یا اینکه منظور تکنیک دیگه ای هست خبر ندارم
مهم ترین انگیزه منم همینه. من توی پروژه های نسبتا کوچیک هم با این مسئله مواجه میشم که مجبورم وقت زیادی بذارم که مطمئن بشم جریان کار و پاس کاری داده ها درست انجام میشه. مهم ترین دلیل طولانی شدن دیباگ برای من شلوغ بودن و چند لایه بودن برنامست که با توجه به تحقیقاتی که تا الان داشتم، c++ میتونه مشکلمو حل کنه. مثلا فرض کنیم یه برنامه ساده داشته باشیم که میکرو بخواد دو تا موتور با ویژگی های مختلف رو با فیدبک و پالس pwm کنترل کنه و یه سری اطلاعات مربوط به اون رو هم روی یه ال سی دی ساده نمایش بده.شاید برنامه نویسی با c خیلی سخت نباشه. ولی اگه قرار باشه هر کدوم از این موتور ها یه سری تنظیمات هم داشته باشن که کاربر بتونه تغییر بده ، برنامه خیلی در هم میشه و دنبال کردن روال کار اجرا و دیباگ واقعا عذاب آور. (و بدتر از اون ، اینه که تنظیمات این دو موتور با هم متفاوت باشه، مثلا محدوده ولتاژ یا فرکانس ها با فرق کنه یا برای یه موتور امکان حرکت معکوس در نظر گرفته بشه و برای دیگری نه). اگه حتی بخوایم وضعیت پیچیده تر کنیم میشه اینطور در نظر گرفت که رفتار بخش های دیگه برنامه وابسته به تنظیمات موتورها یا وضعیت هر لحظه اونا (مثلا جریان موتور)، باشه که در پروژه های واقعی معمولا همینطوره. چنین برنامه ای با اینکه کلیاتش سادس، ولی چون همه متغیر ها به هم وابسته میشن، پیچیده و در هم میشه.
یا شاید هم مشکل از دانش پایین برنامه نویسی منه
)
اگه راهکار بهتری هست، خوشحال میشم بدونم.
نوشته اصلی توسط amirdelta
نمایش پست ها
نوشته اصلی توسط amirdelta
نمایش پست ها
منظور از تعریف واحد های حافظه چیه؟ فضای ذخیره داده ها که با keyword مشخص میشه؟ مثل auto, static و ... یا اندازشون؟ مثل uint8_t و unsigned char که 8 بیتی هستن ؟ یا اینکه منظور تکنیک دیگه ای هست خبر ندارم

نوشته اصلی توسط amirdelta
نمایش پست ها
مهم ترین انگیزه منم همینه. من توی پروژه های نسبتا کوچیک هم با این مسئله مواجه میشم که مجبورم وقت زیادی بذارم که مطمئن بشم جریان کار و پاس کاری داده ها درست انجام میشه. مهم ترین دلیل طولانی شدن دیباگ برای من شلوغ بودن و چند لایه بودن برنامست که با توجه به تحقیقاتی که تا الان داشتم، c++ میتونه مشکلمو حل کنه. مثلا فرض کنیم یه برنامه ساده داشته باشیم که میکرو بخواد دو تا موتور با ویژگی های مختلف رو با فیدبک و پالس pwm کنترل کنه و یه سری اطلاعات مربوط به اون رو هم روی یه ال سی دی ساده نمایش بده.شاید برنامه نویسی با c خیلی سخت نباشه. ولی اگه قرار باشه هر کدوم از این موتور ها یه سری تنظیمات هم داشته باشن که کاربر بتونه تغییر بده ، برنامه خیلی در هم میشه و دنبال کردن روال کار اجرا و دیباگ واقعا عذاب آور. (و بدتر از اون ، اینه که تنظیمات این دو موتور با هم متفاوت باشه، مثلا محدوده ولتاژ یا فرکانس ها با فرق کنه یا برای یه موتور امکان حرکت معکوس در نظر گرفته بشه و برای دیگری نه). اگه حتی بخوایم وضعیت پیچیده تر کنیم میشه اینطور در نظر گرفت که رفتار بخش های دیگه برنامه وابسته به تنظیمات موتورها یا وضعیت هر لحظه اونا (مثلا جریان موتور)، باشه که در پروژه های واقعی معمولا همینطوره. چنین برنامه ای با اینکه کلیاتش سادس، ولی چون همه متغیر ها به هم وابسته میشن، پیچیده و در هم میشه.
یا شاید هم مشکل از دانش پایین برنامه نویسی منه

اگه راهکار بهتری هست، خوشحال میشم بدونم.
دیدگاه