نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
أَللّهُمَّ ارْزُقْنی شَفاعَةَ الْحُسَیْنِ یَومَ الْوُرُودِ
محسن

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

84

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

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

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

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

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

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

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

درباره : 
تعداد مطالب : 4 تا
من دريافته ام كه ايده هاي بزرگ هنگامي به ذهن راه مي يابند كه اراده كنيم چنين ايده هايي را داشته باشيم. چارلي چاپلين
ارسال دیدگاه
13
نظرات این مطلب بسته شده است.
  1. ازمایشگاه خانگی

    مهمان

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

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

  2. HOJJAT

    مهمان

    HOJJAT

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

  3. sama

    مهمان

    sama

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

    مشاهده پاسخ ها (1)
  4. sama

    مهمان

    sama

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

  5. majid

    مهمان

    majid

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

  6. علی قاضی

    مهمان

    علی قاضی

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

    مشاهده پاسخ ها (2)
    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

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

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

        مدیر سایت

        مهدی دمرچیلو

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

  7. علی قاضی

    مهمان

    علی قاضی

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

    مشاهده پاسخ ها (1)
    • مهدی دمرچیلو

      مدیر سایت

      مهدی دمرچیلو

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

  8. علی قاضی

    مهمان

    علی قاضی

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

  9. mas

    مهمان

    mas

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