خانه / آموزش های الکترونیک / آموزش ARM / آموزش صحیح و خوانا نوشتن کد میکروکنترلرها جلسه 2

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

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

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

;ADC_i=0
for (i=0;i<=9;i++) {             // Average of 10 consequent Sample for reduce Noise effect
  ; ADC_i=read_adc(4)+ADC_i
   {
;ADC_i=ADC_i/10
ADC_i=(ADC_i*2.56)/1024;         // Convert ADC result to a number between 0 and 2.56

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

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

…(if (i == a1
…(if (i == a2
…(if (i == a3
…(if (i == a4
.
.
.
…(if (i == a10

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

// External Interrupt(s) initialization
// INT0: Off
// INT1: On
// INT1 Mode: Any change
// INT2: Off
;GICR|=0x80
;MCUCR=0x04
;MCUCSR=0x00
;GIFR=0x80
اون کامنت هایی که بالا نوشته شده، چیزی نیست برای نویسنده، اما برای خواننده کلیه. چون دیگه نمی خواد بره سراغ رجیستری ATmega32 . تازه خود نویسنده هم اگر بعد از مدتی بیاد سراغ کدش، گیج نمیشه.

آموزش صحیح و خوانا نوشتن کد میکروکنترلرها جلسه 1

درباره ی electrical engineer

همچنین ببینید

مخابرات ماهواره (قسمت چهارم)

مقدمه : در این قسمت از روایط فرکانسی در ماهواره و تداخلات فرکانسی می گوییم …

پاسخی بگذارید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دو × 2 =