نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
Avatar

آموزش صحیح و خوانا نوشتن کد میکروکنترلرها-2

آموزش صحیح و خوانا نوشتن کد میکروکنترلرها-2

 
 
آموزش صحیح و خوانا نوشتن کد میکروکنترلرها-۲ وقتی برنامه ای نوشته میشه، یک بحث اینه که آیا قراره به جایی داده بشه یا نه !! یعنی مثلا شما کدی رو می نویسید و به شرکتی یا شخصی تحویل میدید. این جور وقتا معمولا کد برنامه برای انتقال دانش برنامه نویسی شما به طرف مقابلتون محسوب میشه. اگر طرف مقابلتون حرفه ای باشه، یک سری شرط هایی رو میزاره که شما توی برنامه نویسیتون رعایت کنید.
یکی از چیزهایی که معمولا توصیه میشه توضیحات داخل برنامه است. یعنی کامنت گزاری. اگر چه ممکنه خیلی مهم به نظر نیاد و بگید توی گزارش در مورد کد توضیح دده میشه، اما این طور نیست. همیشه سعی کنید روبروی کد هاتون یک توضیح هر چند کوتاه بزارید. کامنت ها رو هم انگلیسی بزارید. اولش سخته اما راه بیفتید میفهمید چقدر راحت تر از کامنت گزاری فارسیه. دقت کنید منظور من پروژه های رسمی هستش.

خوب کد زیر رو ببینید :

حلقه for نیاز به توضیح نداره اما چرایی انجامش تو اینجا نیاز به توضیح داره. حلال شما اگر خودتون هم بعد از مدتی بخواهید برناه نوشته شده رو ویرایش کنید، میدونید چرا for رو نوشتید. یادتون میاد اون اعداد برای چی نوشته شدند. اگر بخواهید دقت رو بیارید پایین با ببرید بالا، کافیه که عدد داخل for رو کم و زیاد کنید.
بعضیا هستن فکر می کنن هرچقدر برنامه کوتاه تر باشه حرفه ای تره !!! من اینو قبول ندارم. مثلا اگر 10 خط به برنامه اضافه بشه، اما برنامه خواناتر بشه می ارزه. حتما این یادتون بشه. دقت کنید اینو با استفاده از کدهای آماده اشتباه نگیرید.

ببینید یک مثال می زنم. مثلا کد زیر رو ببینید :

برنامه بالا نوشته شده برای بررسی یک مقدار یک متغیر. شده 10 خط. خوب این برنامه اشکال داره. چون وقت اجرا هر 10 تا خط اجرا میشه ولی ما میدونیم که اگر یکی برقرار باشه، بقیه برقرار نیستن. پس اینجا برنامه خواناست اما غیرحرفه ای. دو تا ره داریم. یکی اینه که از ترکیب if … esle… استفاده کنیم و یکی دیگه استفاده از switch هستش. اینجا دیگه سلیقه ای هستش. اما خود من switch  رو ترجیح میدم. چون وقت خوندن کد توسط دیگری، بهتر مفهوم انتقال داده میشه.
یا مثلا وقتی که تنطیمات مربوط به قسمت هایی از میکرو رو انجام میدید، کد مربوطش رو بنویسید هر چند برای خودتون خیلی ساده باشه. مثلا تنظیم وقفه یک توی ATmega32.
اون کامنت هایی که بالا نوشته شده، چیزی نیست برای نویسنده، اما برای خواننده کلیه. چون دیگه نمی خواد بره سراغ رجیستری ATmega32 . تازه خود نویسنده هم اگر بعد از مدتی بیاد سراغ کدش، گیج نمیشه.

تو قسمتای بعدی بیشتر توضیح خواهم داد ..

گروه پرسش و پاسخ الکترونیکی در سروش
تعداد مطالب : 5 تا
Avatar من دريافته ام كه ايده هاي بزرگ هنگامي به ذهن راه مي يابند كه اراده كنيم چنين ايده هايي را داشته باشيم. چارلي چاپلين
ارسال دیدگاه
13

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    ازمایشگاه خانگی

    سلام.
    ببخشید من یه کد نوشتم که اگه یک کلید فشرده شد یک ال ای دی روشن شه پول اپ گذاشتم ولی وقتی که کلید فشرده میشه ال ای دی روشن نمیشه دیگه عمل نمی کنه؟
    کدها
    file:///C:/Users/ALIREZA/Downloads/Desktop/Capture7.PNG
    شماتیک
    file:///C:/Users/ALIREZA/Downloads/Desktop/Capture77.PNG
    smile smile smile

  2. Avatar

    مهمان

    HOJJAT

    سلام.اموزش خلاصه و خوبی بود…کی ادامش رو میذارید؟؟؟

  3. Avatar

    مهمان

    sama

    برنامه ای که گفتم اینه laugh laugh laugh
    void sendtext(char *k)
    char andis
    andis=0;
    while(k[andis]!=0)
    این *K ینی چی؟؟

  4. Avatar

    مهمان

    sama

    سلاااام یه سوال دارم من یه خط از یه برنامه ایو متوجه نمیشم مییشه کمک کنی؟!

  5. Avatar

    مهمان

    majid

    سلام
    ممنون مطلب خوب و جدیدی بود
    اقا محسن دیگه ادامه نمیدن این مطلبو؟

  6. Avatar

    مهمان

    علی قاضی

    این PWM نیست که تو 0 و 1 میکنی پایه رووووووووووووووووووووووو

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      اگه شک داری :
      1) http://www.eca.ir/forum2/index.php?board=161.0
      2) کتاب جابر الوندی.
      victory

      • مهدی دمرچیلو

        مدیر سایت

        مهدی دمرچیلو

        با 0 و 1 کردن چپ یا راست چرخیدن موتور رو تعیین میکنیم.

  7. Avatar

    مهمان

    علی قاضی

    داداش این PWMM است؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟؟ no

    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

      آره فک کنم…
      اگه شک داری>>>کد های پروژه رو با کتاب جابر الوندی مقایسه کن…شاید اشتباه کرده باشم(که بعید میدونم) good

  8. Avatar

    مهمان

    علی قاضی

    کدت کار نمی کنه good

  9. Avatar

    مهمان

    mas

    خیلی جالب بود! ممنون!