Atmel Studio 6 Survey

مباحثی درباره خانواده AVR و برنامه نویسی به زبان C آنها

Atmel Studio 6 Survey

مباحثی درباره خانواده AVR و برنامه نویسی به زبان C آنها

نحوه خواندن فایل هگز اینتل

بعد از کمپایل کردن برنامه، یک فایل با پسوند hex ساخته می شود که آن را درون حافظه میکرو تزریق می کنیم. 

این فایل دارای حداقل 3 سطر است.

مثال: برنامه زیر: 

.include"m32def.inc"
.ORG 0
LDI R29,$99
LDI R29,$99
LDI R29,$99
LDI R29,$99
LDI R29,$99
LDI R29,$99
LDI R29,$99
LDI R29,$99
 

 

یک برنامه ساده است که برنامه آغاز شده و یک دستور هشت بار تکرار شده است. ترجمه به زبان ماشین آن چنین خواهد بود: 

:020000020000FC
:10000000D9E9D9E9D9E9D9E9D9E9D9E9D9E9D9E9E0
 :00000001FF 

 

سطر اول به معرفی نوع میکرو و آغاز برنامه می پردازد که معمولا پروگرامر آن را نادیده می گیرد. 

سطر آخر هم برای بستن برنامه است. 

سطر وسط، ترجمه متن برنامه است که به توضیح آن می پردازیم: 

 

1. :
2. 10
3. 0000
4. 00
5. D9E9D9E9D9E9D9E9D9E9D9E9D9E9D9E9
6. E0 

 

1) یعنی شروع سطر جدید 

2) 10 در مبنای هگز است و یعنی قسمت 5 شامل 16 بایت داده است. 

3) آدرس رکورد در حافظه (؟) 

4) نوع رکورد 

5) بایت های داده 

6) چک سام: طوری تعیین می شود تا مجموع اعداد سطر برابر 0 شود ( مانند Parity) 

 

اما در مورد قسمت پنجم باید گفت: 

- متاسفانه مانند میکروهای MCS-51 قانون ساده ای برای تفسیر آنها وجود ندارد و معمولا در صورت لزوم از decompiler ها استفاده می شود. 

- حداکثر 16 بایت طول دارد، اگر بیشتر شد، در سطر بعدی ادامه می یابد. 

- مثلا ترجمه LDI R29,$99 می شود D9E9 حالا به تفسیر آن می پردازیم: 

D یعنی R29 

E یعنی LDI ( از روی دفترچه راهنمای "مجموعه دستورالعمل های اتمل" معلوم می شود.) 

دو تا 9 که در دو طرف E قرار گرفته اند همان 99 می شوند. 

 

* نکته: ممکن است طول یک دستور 1، 2 یا 3 بایت باشد که در آن صورت بایت های بیشتری مصرف می شوند.

گنجینه مثالها

به واسطه سیاست "گاو آزاد گنو" نرم افزار Atmel Studio 6 دارای یکی از بزرگترین گنجینه مثالهای عملی است: بیش از بیست هزار مثال و راه حل امتحان شده. 

اینها برای کسانی نیز مفید است که بخواهند با Atmel Studio 6 آشنایی پیدا کنند. شما همچنین می توانید نوع دستگاه خود ( کارخانه ای یا دست ساز) و نوع محصول ( درایور، برنامه کاربردی و ... ) را انتخاب نمایید. 

برای این کار کافیست Ctrl+Shift+E را بگیرید یا از راههای مربوطه وارد شوید. باقی کار هم برای کسانی که با میکروها آشنایی دارند آسان است تا کد هگز تولید شود. 

اتمل نیکی را کامل کرده و برای آخرین مثالهای طبقه بندی شده سایتی هم تاسیس کرده ( اینجا را کلیک کنید) 

 ASF = Atmel Software Framework مجموعه ای غنی از برنامه های کاربردی اورجینال اتمل است.

گاو آزاد گنو

برخی شرکت های الکترونیکی مانند اپل و نیز اتمل، ادعای آزادگی دارند. اینها نرم افزارهای خودشان را به صورت متن باز منتشر می کنند. 

اکثر ما ایرانی ها روی کامپیوتر خود سیستم عامل ویندوز داریم، آن هم از نوع قفل شکسته یعنی نوع مسروقه، ولی به استفاده رایگان و حلال لینوکس تن نمی دهیم. 

یک سیستم عامل آزاد که مانند یونیکس است و منبعث از افکار لیبرال مدیر آن "ر. استالمن" است سیستم عامل گنو است. گنو یک سر واژه بازگشتی است: GNU's Not Unix  همچنین gnu همان اسب شاخدار یا گاو کوهاندار آفریقایی است. 

 

 

گنو نه تنها به عنوان سیستم عامل مرجع Atmel Studio تعریف شده است، بلکه به صورت ضمنی Atmel Studio تحت قیادت استالمن هم هست.

=|

نماد فوق عملگر انتساب ترکیبی عطف است. 

مثال: 

a= 00101101 

b=10101100 

a|=b 

so a= 10101101

ساخت پروگرامر همه منظوره در سه سوت و باقی قضایا

می توان یک پروگرامر ساخت که تمام AVR ها را پروگرام کرد. اینجا را کلیک کنید. 

اما این روش یک مساله دارد: لپتاپها پورت موازی ندارند. 

باید گفت برای پروگرام کردن یک AVR تنها کافی است به 5 پایه آن باید متصل شد: 

  1. Ground 
  2. Reset 
  3. Clock 
  4. MOSI 
  5. MISO 

 این مهم کار کردن با AVR ها را بسیار ساده می کند، به طوری که می توان میکرو را به راحتی (حتی اگر میکرو در داخل پروژه نصب شده باشد ) پروگرام کرد. به چنین خاصیتی ISP ( پروگرام کردن در داخل سیستم) اطلاق می شود. پایه های فوق به عنوان پایه های ISP شناخته شده اند.

فی الواقع هر پروگرامری شامل مدارهای زیر است: 

  1. مداری برای تبدیل پورت خروجی کامپیوتر ( مانند USB) به پنج پین معادل در پورت موازی 
  2. مداری برای تبدیل 5 پورت موازی به ISP
  3. مدارات اضافی مانند LEDها، سوکت زیف  

 

شکل: یک مدار برای تبدیل USB به ISP

  

 

شکل: اتصال یک میکرو نوعی به ISP