آموزش میکروکنترولر AVR از ابتدا تا پیشرفته

در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

مطالب برایتان مفید بود

عالی و ساده بود،ادامه دهید
21
81%
خوب و قابل فهم بود،ادامه دهید
5
19%
ساده و قابل فهم نبود.
0
بدون راي
تکراری و سخت بود.
0
بدون راي
 
مجموع رای گیری: 26

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » یک شنبه 23 خرداد 1395, 11:23 am

بنام خدا
باسلام

[HIGHLIGHT=#92d050]اما حلقه for، حلقه for   می توان به مانند حلقه while تودرتو نوشت

به عنوان مثال

(++for(i=0;i<10;i
}



(++for(x=0;x<0;x

}
دستور العمل ها
{

}
پس مشکلی از بابت تو در تو نوشته شدن حلقه for نیست.
حلقه ها تو در تو for ، در بعضی کارها مثل ساخت تابلو ها روان و .. کاربرد ویژه دارد، و بطور کلی حلقه for حلقه های بسیار خوب و کاربردی در کدویژن می باشن.

[HIGHLIGHT=#76923c]دستور  

به کمک این دستور می توانیم،در بعضی برنامه کارها را سریع تر انجام دهیم .. وظیفه این دستور مقایسه کردن یک متغیر با گزینه های خود،سپس انجام دستور العمل نسبت به ان می باشد.

اصول نوشتن:
(عبارت)switch
}

:مقدار 1 case
;دستور العمل های اول
;break

:مقدار 2 case
;دستور العمل های دوم
;break

:مقدار 3 case
;دستور العمل های سوم
;break

:مقدار 4 case
;دستور العمل های چهارم
;break

:default
;دستور العمل های پیش فرض
}
و...

ما ابتدا باید یک متغیر به switch معرفی کنید ،دقیقا جایی که گفته شده است "عبارت" سپس مقدار عبارت با هر یک از مقدار case ها برابر بود،دستورالعمل های مطابق به همان کیس اجرا میشود(و بلافاصله از دستور switch خارج میشود)،اما در صورتی که متغیر با هیچ از case قابل مقایسه نبود، شرایط default اجرا میشود. (لازم به ذکر است می توان default را اصلا ننوشت)

به عنوان مثال:

0=unsigned char a=0,b


(switch(a
}
case 5: b=10
;break

case 7: b=20
;break

case 44 : b=30
;break

;default: b=70
{

در مثال بالا، دو متغیر a,b را تعریف کرده ایم و مقدار انها را 0 کرده ایم، سپس برنامه وارد دستور سوئیچ میشود، متغیر a برای مقایسه با کیس ها switch گرفته میشود،

ابتدا با کیس اول،که مقدارش 5 می باشد،مقایسه میشود،چون مقدارش بیشتر از a می باشد،اجرا نمی شود، شرط بعدی مقایسه میشود،چون بازهم مقدار a کمتر از 7 می باشد، دستورش اجرا نمی شود،کیس سوم هم به مانند کیس ها قبلی بیشتر از مقدار a می باشد. در پایان برنامه وقتی به default می رسد، مقدار b را برابر 70 می کند .

از دستور switch بیشتر در ساخت کیبوردها و موارد دیگر استفاده میشود .(انشالله در آینده بیشتر با ان اشنا خواهید شد)

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » دو شنبه 24 خرداد 1395, 11:09 am

بنام خداونده بخشنده و مهربان
باسلام

[HIGHLIGHT=#76923c]دستور goto 

اما گاهی وقت ها نیاز هست، ما به خط دلخواه برنامه نوشته شده،میکروکنترولر را هدایت کنیم. ! به عنوان مثال،به میکروکنترولر بگویم، برو به خط برنامه 230! یا برگرد به خط 2 برنامه! یا ...! (به نوعی به صورت سفارشی برنامه خوانده شود)

* قبل از هرچیز باید بدانید باید خیلی کم از دستور goto استفاده کنید. و بهتر است در مواقع استراری از ان استفاده شود .

مثال با دستور goto

//دستورها
//دستورها
//دستورها
;goto a
//دستورها
//دستورها
//دستورها

:a

ابتدا ما دستور goto را می نویسیم،سپس باید نامی انتخاب کنیم(که به ان برچسب می گوین،) این نام در واقع همان جایست که قرار است برنامه به ان نتقطه پرش کند (ظاهر کمی توضیحات گیچ کننده شد! )
در مثال بالا،وقتی برنامه به دستور goto a می رسد، سه دستور بعدی را نخوانده و فوراه به جایی که :a قرار دارد پرش می کند و از ان خط به بعد را می خواند و بررسی می کند..

چند نکته در رابطه با دستور goto

1-همانطور که گفته شد نباید زیاد از ان استفاده شود
2- به کمک این دستور می توان به خط های برنامه نویسی قبل تر( از دستور،)پرش کرد
3-اگر دستور goto در حلقه while نوشته شود باشد،باید پرش ها در خود حلقه while باشد،وگرنه نرم افزار ایراد می گیرد و اجازه چنین کاری را نمی دهد.
4-پرش ها باید در محدود تابع باشن،وگرنه نرم افزار ان را مجاز نمی داند.
و..

پایان مبحث دستورها .
انشالله در پست هایی بعدی با توابع و کتابخانه ها و آرایه ها اشنا خواهید شد و بعد از با نرم افزار کدویژن و بعد آشنایی با پروگرام کردن میکروکنترولر و بعد آغاز مبحث بسیار طولانی برنامه نویسی و کار با واحدهای میکروکنترولر وپروژها شروع خواهد شد(انشالله)
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » سه شنبه 25 خرداد 1395, 8:46 am

بنام خداوند بخشنده و مهربان
با سلام

ظاهرا در چند پست قبل توابع فرعی و اصلی را توضیح داده ایم . پس فعلا تا همین قدر بسنده می کنیم،تا انشالله در اینده و در زمان کار کردن به ان،بیشتر به ان بپردازیم.
[HIGHLIGHT=#f79646]
آرایه ها
 

آرایه ها، در واقع از مجموعه از متغیرها تشکیل شده اند.چرا؟! در برنامه نویسی،ما نیاز داریم،(شاید بیش از نیمی از پروژها)، با مجموعه از متغیرها کار کنیم،اما ما نمی توانیم به عنوان مثال 100،متغیر را تک تک بنویسیم و نام گذاری کنیم،چون وقت زیادی از ما گرفته میشود و از این گذشته،برنامه به شدت پیچیده و سخت میشود! برای همین باید به سراغ آرایه ها برویم.

اصول نوشتن ارایه:

مقدار هر متغیر+تعداد متغیربتدا نام و نو ع متغیر

به عنوان مثال :


;{0,0,0,0,0}=[unsigned char x[5

در مثال بالا،ابتدا متغیر x از نوع 8 بیتی تعریف کرده ایم، سپس یک پرانتز باز کرده ایم و[تعداد متغیرها] را ذکر کردیم. سپس یک پرانتز دیگر باز کرده ایم { و متغیرها را به ترتیب }مقدار دهی کردم. یعنی در مثال بالا همه 5 متغیر که تعریف کرده ایم،مقدارشان 0 می باشد.

ما در برنامه اینطور متغیر ارایه را فرا می خوانیم

;[b=x[0


یعنی ابتدا نام ارایه را می نویسیم،سپس شماره متغیر را ذکر می کنیم، در مثال بالا، b برابر با مقدار 0 می باشد.چون [x[0 مقدارش 0 می باشد.

مثالی دیگر:


;{0,0,50,0,0}=[unsigned char x[5


;[b=x[2

در مثال بالا b مقدارش 50 میشود، چون مقدار [x[2 برابر با 50 می باشد

[HIGHLIGHT=#76923c]*نکته مهم:  ما زمانی که یک متغیر ارایه ی تعریف می کنیم، برنامه ان را از 1 تا .. (تا هرچندتا که ما تعریف کرده باشیم، که در مثال بالا 5 متغیر است،) می شناسد!اما زمانی که می خواهیم،ان را بخوانیم، باید از 0 تا .. ان را نام ببریم.همانجور که در مثال بالا می ببینید در حالی که متغیر 3 ،برابر با 50 است،ولی ما در جلویی ارایه x شماره 2 را ذکر کرده ایم.همیشه این نکته را مد نظر داشته باشید..

مثالی دیگر


;{0,63,0,80,0,50,0,23}=[unsigned char x[8


;[a=x[1
;[b=x[3
;[c=x[5
;[d=x[7

در مثال بالا، یک متغیر ارایه ی 8 عضویی(متغیر) تعریف کرده ایم. مقدار a برابر 63 میشود، مقدار b برابر80 میشود،مقدارc برابر 50 میشود، مقدار d برابر 23 میشود.


بیشترین کاربرد آرایه ها در نمایشگر ها LCD و DOT های ماتریکسی می باشد. آرایه ها بار سنگینی را از دوش برنامه نویسان برداشتن.نباید هیچ وقت انها را دست کم گرفت.
آرایه به صورت دوبعدی و سه بعدی هم نوشته میشوند،اما فعلا به انها نمی پردازیم .

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » چهار شنبه 26 خرداد 1395, 10:08 am

بنام خداوند بخشنده و مهربان
باسلام

کتابخانه ها
 تصویر  کتابخانه ها، یکی از کلیدترین حل مشکلات ما در برنامه نویسی می باشند و کارها ما را بسیار سریعتر انجام میدهن.!

تصور کنید،در برنامه می خواهید از فرمول ها تخصصی ریاضی استفاده کنید ([HIGHLIGHT=#ffc000]به عنوان مثال کسینوس،تانژان و ... ) یا می خواهید با یک LCD (که از 1000 پیکسل تشکیل شده) ارتباط برقرار کنید،یا می خواهید با یک سخت افزار درونی میکروکنترولر ارتباط برقرار کنید، یا ...!

همه این موارد که گفته شد،نیاز به دانش تخصصی دارد،و اگر بخواهیم همیشه و دائم انها را بنویسیم،مسلما بی نهایت وقت ما را خواهد گرفت! برای رفع این مشکل، ما از کتابخانه ها اماده استفاده می کنیم،تا بی نهایت کار ما را راحت کند!

کتابخانه ها،به دو دسته تقسیم میشوند، [HIGHLIGHT=#76923c]رسمی   [HIGHLIGHT=#e36c09]غیر رسمی .

رسمی: کتابخانه های هستن،که خود شرکت کدویژن ساخته و بعد از نصب نرم افزار،به راحتی می توانید از ان استفاده کنید.
غیر رسمی:کتابخانه های هستن،که یک فرد یا گروهی به صورت جداگانه ان را ساخته و تهیه کرده،که ما می توانیم انها را جداگانه تهیه و از ان استفاده کنیم .

از این پست بعد ،ما به معرفی کتابخانه های رسمی و کارهای که می توان با انها انجام داد می پردازیم(که احتمالا پست ها را به خود مختص دهد)
*لازم به ذکراست،بهتراست انها را یادبگیرید،چون در آینده واقعا به کار شما خواهد آمد. (گرچه در مباحث عملی ،ما به صورت عملی با انها کار خواهیم کرد،انشالله)
(تصویر به نقل diginic.net)
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » پنج شنبه 27 خرداد 1395, 11:49 am

بنام خدا
باسلام


اولین کتابخانه که امروز می خواهم به ان بپردازیم،کتابخانه تاخیری می باشد.اما قبلش چند توضیح مختصر

فرم تعریف یک کتابخانه بدین شکل می باشد:
<h.نام کتابخانه>include#

که همیشه باید پسوند h. را درکنار نام کتابخانه قید کنید،تا نرم افزار ان را فراخوانی کند (همه کتابخانه ها کدویژن با پسوند h. می باشند )

*همیشه کتابخانه ها باید،در ابتدا برنامه تعریف شوند (بعد از معرفی کتابخانه میکروکنترولر)
*بازهم این نکته را قید می کنم،[HIGHLIGHT=#4f81bd]در مباحث عملی و کار با شبیه سازها،بهتر و صحیح تر با کتابخانه ها اشنا خواهید   ،در مبحث حال حاضر،بیشتر یک معرفی ساده خواهند شد.

اما کتابخانه delay معروف به کتاخانه تاخیری.


این کتابخانه جزو معروفترین و پرکابردترین کتابخانه ها مورد استفاده می باشد،که در اکثر برنامه از ان استفاده میشود

ما در برنامه(ابتدا برنامه) ان را اینطور فراخوانی می کنیم

کد: انتخاب همه

#include <delay.h>   //کتابخانه تاخير


به کمک کدهای اماده این کتابخانه می توانیم،تاخیر در برنامه ها ایجاد کنیم،تاخیر برای چه؟!

تصور کنید،می خواهید یک LED را دائم خاموش و روشن کنید،اما به صورت معمولی نمی توانیم،چون سرعت میکروکنترولر انقدر بالاست،که اصلا ما به هیچ وج نمی توانیم متوجه چشمک زدن LED بشویم.

فرض کنید، LED به پورت PORTB.0 وصل شده است،و هنگامی که 1 میشود، LED روشن میشود.در حالت معمولی و بدون استفاده از کتابخانه

;PORTB.0=1
;PORTB.0=0


در مثال بالا LED یکبار روشن شد،سپس خاموش شد،فاصله روشن شدن و خاموش شدن،شاید نزدیک چند میکروثانیه باشد! و مطمعا کسی متوجه هیچ چیز نمی شود.! برای رفع این مشکل باید به سراغ کتابخانه تاخیری برویم

کتابخانه تاخیر، دو تابع دستوری ساده،برای اجرا شدن،دارد. یکی بر اساس،[HIGHLIGHT=#e36c09]میکروثانیه ،یکی براساس[HIGHLIGHT=#9bbb59] میلی ثانیه 

که اینطور نوشته میشوند:
(زمان تاخیر براساس میلی ثانیه)delay_ms
(زمان تاخیر براساس میکرو ثانیه)delay_us


درون پرانتز،باید زمان تاخیر دلخواه را براساس میلی ثانیه ذکر کنیم (هر 1000 میکروثانیه،میشود 1 میلی ثانیه،هر 1000میلی ثانیه میشود 1 ثانیه)

حال همان مثل گذشته را می خواهیم با کتاخانه انجام دهیم:

;PORTB.0=1
;(1000)delay_ms
;PORTB.0=0

;(1000)delay_ms

در مثال بالا، پورت بی ابتدا 1 میشود(یعنی ال ای دی روشن میشود)، سپس 1000 میلی ثانیه(1 ثانیه)،میکروکنترولر صبر می کند و هیچ کاری انجام نمی دهدو دستورات بعدی را اجر نمی کند. بعد از تمام شدن 1 ثانیه،دستور بعدی را اجرا می کند و پورت بی را 0 می کند.

پس ما به کمک تابع تاخیری می توانیم به مدت دلخواه خط دستوری را نگه داریم . که از این راه می توانیم کارهای مد نظرمان خودمان را انجام دهیم.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

New Member
پست: 4
تاریخ عضویت: دو شنبه 10 اردیبهشت 1386, 8:32 pm
سپاس‌های ارسالی: 881 بار
سپاس‌های دریافتی: 6 بار

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط m.kia » پنج شنبه 27 خرداد 1395, 5:17 pm

با سلام خدمت جناب سیناست و با تشکر از آموزشهای بسیار خوبتون
یه نکتم من بگم اگر فقط این سه خط رو تو حلقه بی نهایت بنویسیم ال ای دی چشمک نمیزنه و کلا روشنه چون زمان خاموش بودن اینقدر کمه که دیده نمیشه
while(1)
}
;PORTB.0=1
;(1000)delay_ms
;PORTB.0=0
{
برای اینکه چشمک بزنه یه تاخیر دیگه هم می خواد:
while(1)
}
;PORTB.0=1
;(1000)delay_ms
;PORTB.0=0
;(1000)delay_ms
{

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » یک شنبه 30 خرداد 1395, 12:19 pm

بنام خدا
باسلام

تشکر میکنم از کاربر "m.kia" برای تذکر.تصویر

اما همانجور که قبلا عرض کردیم،در حال حاضر نمی خواهم کتابخانه ها را همراه با مثال (عملی ) ذکر کنیم،چون هم شاید کاربران تازه کار متوجه نشوند،و همین اینکه وقت زیادی گرفته خواهد شد.

از این پست به بعد،فقط نام کتابخانه ها و زیر مجموعه ها انها معرفی (بسیار بسیار کوتاه ) میشوند،(تا به صورت کلی فقط با انهاش اشنا بشید و در آینده بیشتر به ان پرداخته شود )


[HIGHLIGHT=#9bbb59]کتابخانه string. 

این کتابخانه جزو کتابخانه مهم کدویژن می باشد. ما به کمک این کتابخانه می توانیم با رشته ها (یا همون آرایه ها که در گذشته توضیح دادیم) کار کنیم .کارهای قبیل کپی کردن ارایه(در حافظه رم،فلش و ..) یا اتصال دو ارایه به هم دیگر یا جستجو در ارایه و کارهای از این قبیل..

اولین تابع دستوری،کتابخانه ..

(char *strcat (char *str1,char *str2

به کمک این تابع ، رشته (ارایه) str2 به str1 اتصال میدهد( اگر دو ارایه داشته باشیم،می توانیم دو ارایه را بهم دیگر بچسبانیم)

(char *strcatf (char *str1,char flash *str2

این تابع نیز به مانند تابع قبلی می باشد،با این تفاوت که رشته str2 که در حافظه فلش قرار دارد را در str1 کپی می کند (در تابع قبلی رشته در رم بود)

(char *strncat( char *str1,char *str2,unsigned char n

این تابع n کاراکتر از رشته str2 را به انتهای رشته str1 اضافه می کند(در واقع میشه تعداد کاراکترهای که از str2 به str1 اضافه بشود را تایین کرد)

(char *strncatf( char *str1,char *str2,unsigned char n

این تابع نیز به مانند تابع قبلی می باشد،با این تفاوت است،که رشته در حافظه flash تعریف شده باشد. (در تابع قبلی رشته در رم بود)

(char *strchar(char *str,char c

این تابع کارش جستجو می باشد. ما کارکتر خودمان را معرفی می کنیم، سپس کارکتر در رشته str جستجو می شود، اولین جایی که در رشته str کاراکتر مورد نظر پیدا کند، رشته str را انجا به بعد چاپ می کند .. در صورتی که نتواند پیدا کند، خروجی 0 خواهد بود (تهی)

(char *strcharr(char *str,char c

این تابع به مانند تابع قبلی می باشد،با این تفاوت که ، اخرین جایی که کاراکتر در رشاع str پیدا شود، چاپ میشود(در تابع قبلی از اولین جایی که کاراکتر پیدا میشد)

(signed char strcmp(char *str1,char *str2

این تابع، رشته str1 و str2 را باهم دیگر مقایسه می کند، اگر str1 بزرگتر از str2 باشد، مقدار بیشتر از 0 را به ما تحویل میدهد و اگر str1 و str2 باهم دیگر مساوی باشند، مقدار 0 را به ما میدهد و اگر str1 کوچیکتر از str2 باشد،مقدار کمتر از صفر را به ما تحویل میدهد (منفی)

(char *strcpy(char *dest,char *src

این تابع رشته src را به dest کپی می کند

(char *strcpyf(char *dest,char *src

این تابع به مانند تابع قبلی می باشد،با این تفاوت که رشته src که در حافظه فلش است را در dest که در رم می باشد،کپی می کند.

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » دو شنبه 7 تیر 1395, 12:26 pm

بنام خداوند بخشنده و مهربان
باسلام

اما در ادامه مبحث کتابخانه ها
همانطور که در چند پست قبل اشاره کرده ایم،کتابخانه ها و توابع مربوط به انها،کارهایی ما را ساده تر می کنند و باعث میشوند،ما دغدغه کمتری برای برنامه نویسی داشته باشیم،اگر بتوان انها را خوب یاد گرفت (بخصوص کتابخانه های اصلی)،می توان کارها را راحتر و حتا بسیار پیشرفته تر از حالت معمولی انجام داد
*کتابخانه ها،همیشه طوری نوشته میشوند،که بهترین بازده از سخت افزار را داشته باشند

اما در ادامه معرفی کتاخانه ها
[HIGHLIGHT=#9bbb59]کتابخانه ctype. 

این کتابخانه جزو کتابخانه کم کاربرد،در کدویژن می باشد (حداقل برای اینجانب)،اما دانستن توابع ان،شاید چندان بد نباشد.

تابع (isalnum(char c

کار این تابع این است که،اگر متغیری(یا مقداری) که در بین دو پرانتز دستور قرار می گیرد،حروف یا عدد (لاتین)باشد،مقدار 1 را بر می گرداند،اما اگر غیر از حروف یا عدد باشد،مقدار 0 برگردانده میشود

تابع (isalpha(char c

کار این تابع تاحدودی شبیه به دستور قبلی می ماند،اما با این تفاوت که اگر فقط شامل حروف باشد،مقدار 1 و در غیر این صورت مقدار 0 را بر می گرداند

تابع (isascii(char c

این تابع،اگر مقدار داده شده،شامل کدهای اسکی (کدهای اسکی 0 تا 127 ) باشد،مقدار 1 و در غیر اینصور مقدار 0 را بر می گرداند

تابع (iscntr1(char c

این تابع کنترولی،اگر مقدار که به ان داده شده(که باید کدهای کاراکتری باشد) بین 0 تا 31 یا 127 باشد،مقدار 1 بر می گرداند،در غیر اینصورت مقدار 0 را برمی گرداند

تابع (isdigit(char c

این تابع،اگر مقدارش 0 تا 9 دسیمال باشد،مقدار 1 را برمی گرداند،در غیر این صورت مقدار 0 را بر می گرداند

تابع (islower(char c

این تابع،اگر مقدارش یکی از حروف کوچک aتا z باشد، مقدار 1 را بر می گرداند،در غیر این صورت 0 را بر می گرداند

تابع (isupper(char c

این تابع،اگر مقدارش یکی از حروف بزرگ A تا Z باشد، مقدار 1،درغیر این صورت مقدار 0 را بر می گرداند

تابع (isprint(char c

این تابع،اگر کاراکتر ورودیش ، مابین 32 تا 127 باشد،مقدار 1 ،در غیر این صورت مقدار 0 را بر می گرداند

تابع (ispunct(char c

این تابع،اگر مقدارش، علامت های مثل ؟،!و.. باشد، مقدار 1،در غیر این صورت مقدار 0 را بر می گرداند

تابع (isspace(char c

این تابع،اگر مقدارش فضایی خالی یا اینتر(که معمولا با زدنش به سطر بعدی می رویم) باشد، مقدار 1،در غیر اینصورت مقدار 0 را بر می گرداند

تابع (isxdigit(char c

این تابع،اگر مقدارش 0 تا F هگزا دسیمال باشد، مقدار 1 ،در غیر این صورت مقدار 0 را بر می گرداند

تابع (toascii(char c

این تابع کاراکتر ورودی را دریافت و مقدار اسکی کاراکتر،را به ما تحویل میدهد

تابع (toint(char c

این تابع،مقدار بر حسب هگزدسیمال را دریافت می کند،سپس بر حسب دسیمال،ان را بر می گرداند

تابع (tolower(char c

این تابع،اگر حرف بزرگی به ان داده شود،ان را تبدیل به حرف کوچک می کند،در غیر این صورت (اگر خود حرف کوچک باشد)،خود حرف را بر می گرداند

تابع (toupper(char c

این تابع،عکس تابع قبلی می باشد،یعنی اگر حرف داده شده به ان کوچک باشد،ان را تبدیل به حرف بزرگ می کند،در غیر این صورت(اگر خود حرف بزرگ بود) خود حرف را بر می گردند.

*همانجور که تا به الان متوجه شدید،این کتابخانه بیشتر کارش به حروف و اعداد و کیبورد و تایپ متن می باشد،به کمک این کتابخانه می توان کارها را سریع تر و بهتر انجام داد.

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » جمعه 18 تیر 1395, 6:45 pm

با سلام

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

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

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » شنبه 19 تیر 1395, 11:59 am

باسلام

اما نحویه نصب نرم افزار کدویژن

ابتدا نرم افزار را از [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]آدرس دانلود کنید.
سپس کرک نرم افزار را مطابق گفته خودشان،نصب کنید :

1-ابتدا فایل را از لینک بالا دانلود و فایل را از حالت فشرده خارج کنید
2-بر روی فایل CodeVisonAVR.3.12_WLE.iR.EXE کلیک کنید و آن را نص کنید (ولی بعداز نصب اجرا نکنید)
3-محتویات پوشه c r 4c k را کپی کنید و در مسیر C:\cvavr\BIN جایگذاری و جایگزین کنید
4-نرم افزار را اجرا کرده و از آن لذت ببرید

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

*فهرست صفحه موضوعات تاپیک،اپدیت شد.

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » جمعه 1 مرداد 1395, 11:01 am

بنام خداوند بخشنده و مهربان
باسلام



آشنایی با محیط کدویژن

ابتدا [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]فایل پروژه کدویژن را از اینجا دانلود کنید.سپس ان را از حالت زیپ خارج کنید،و وارد پوشه شوید و بر روی فایل learn.prj کلیک کنید

 به محیط برنامه نویسی کدویژن خوش آمدید.  تصویر   نرم افزار ساده می باشد،اما قابلیت های زیادی در این نرم افزار نهفته می باشد.   در ادامه قسمت های مهم تر نرم افزار را (به صورت خلاصه) معرفی خواهیم کردم . ابتدا گزینه ها و تنظیمات نرم افزار:  منوی file  تصویر   کمک گزینه file می توانید،اطلاعات نرم افزار را ذخیر کنید،یک پروژه جدید باز کنید،اطلاعات صفحه را ذخیر کنید. و کارهای شبیه به ان را در نرم افزار انجام دهید.  *مهمترین گزینه file،ساخت پروژه می باشد،که انشالله بعدها ان را آموزش خواهیم داد.  گزینه edit  تصویر   کمک گزینه های این صفحه،می توانید تغییرات داده شده در صفحه را به عقب برگردانید یا که به جلو برگردانید ،قسمت های از خط برنامه را علامت گذاری کنید و مجموعه از کاراکترهای خاص را به نرم افزار اضافه کنید و کارهای شبیه به ان را می توان به کمک گزینه edit انجام داد.  *از زمانی که برنامه را باز کنید هر تعداد تغییر که به ان بدهید،می توانید به کمک گزینه بازگشت،تک تک انها را برگردانید!     گزینه search  تصویر   کمک گزینه سرچ می توانید در برنامه نوشته شده خودتان عبارتی را جستجو کنید،* علاوه بر ان می توانید عبارت را پیدا،سپس عبارت جدیدجایگزین ان بکنید(که می تواند خیلی کاربردی باشد،در زمانی که یک کلمه یا دستور را اشتباه نوشته باشید،فورا ان را پیدا و با عبارت صحیح تر جایگزین کنید.)  گزینه View  تصویر   کمک این گزینه می توانید قسمت ها و ابزارها و پنجرها صفحه را قابل نمایش یا غیر قابل نمایش در صفحه کنید . (بهتر است،زیاد این گزینه را دست نزنید،اما اگر به اشتباه صفحه یا پنجره ی را بستید،می توانید به کمک این گزینه،از دوباره ان را به صفحه اصلی برگردانید)  گزینه project  تصویر   کمک گزینه project می توانید،اخرین تغییرات برنامه را ذخیر و آماده سازی برای پروگرام کنید و همچنین می توانید حجم استفاده شده توسط برنامه را ببینید. و همچنین می توانید برنامه خود را کنترول کنید.   گزینه ها:  * build برای ذخیره کردن اخرین تغییرات برنامه و دیباگ کردن برنامه نوشته می باشد(*یعنی اطلاعات ذخیر میشود و در همان حین بررسی میشود،که خط ها برنامه اشکالی دارد یا که خیر)  *information می توانید حجم برنامه نوشته شده و میزان استفاده شده توسط حافظه های میکروکنترولر را ببینید.  *configure به کمک این گزینه،می توانید تنظیمات برنامه نوشته برای میکروکنترولر را مدیریت کنید.  (انشالله بعدها با این گزینه بیشتر اشنا خواهید شد)  گزینه Tools  تصویر   tools مجموعه ابزارهای می باشد،که می تواند به ما کمک کند. مهمترین گزینه های tools:  *CodewizardAvr به کمک این ابزار بسیار مفید،می توانید کدهای مورد نیاز واحدهای میکروکنترولر را تولید   *chip programmer به کمک این گزینه می توان،برنامه نوشته را پروگرامر کرد (که البته شخصا تابحال از ان استفاده نکرده ام،چون با پروگرامر usbasp همخوانی ندارد)  *Terminal به کمک این ابزار می توان با پورت usart میکروکنترولر ارتباط برقرار کرد   *LCD vision به کمک این گزینه می توان،تصاویر و متن را برای LCD ها تولید کرد    setting هم برای یک سری تنظمات برنامه می باشد و گزینه help نیز راهنمایی استفاده از نرم افزار و برنامه نویسی می باشد و همچنین می توان لیسانس و دیگر چیز ها را به کمک این گزینه بررسی کرد .  ادامه دارد..  . 
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 6928
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9170 بار
سپاس‌های دریافتی: 20870 بار
تماس:

Re: آموزش میکروکنترولر AVR از ابتدا تا پیشرفته(+فهرست)

پست توسط sinaset » جمعه 8 مرداد 1395, 11:14 am

بنام خدا
باسلام


همانجور که دیدید،برنامه کدویژن در عین پیشرفتگی،ظاهر ساده دارد و آنچنان که شاید فکر می کردید،پیچیده نیست،محیط تا حد امکان ساده طراحی شده، می توان این نکته را نیز اضافه کرد،که کدویژن نسبت به سایر نرم افزارهای میکروکنترولرها(مثل ARM و ..) ساده تر می باشد،و کاربر را از پیچیدگی ها بیش از اندازه دور می کند (*لازم به ذکر البته نه به اندازه نرم افزار بسکام) اما کدویژن حد وسط را رعایت کرده.انشالله در آینده با نرم افزارهای دیگر برنامه نویسی سخت افزار که آشنا شدید،بیشتر به سادگی و راحتی کار با نرم افزار کدویژن پی خواهید برد .

اما برای اینکه مبحاث را پیشرفته کنم،باید ابتدا نحویه پروگرام کردن میکروکنترولر را یاد بگیرم

پروگرامر کردن میکروکنترولر


در صفحه هات قبل،در رابطه با فیوزبیت ها به بطور کلی صحبت کردیم. فیوزبیت اصلی ترین گزینه ها برای پروگرام کردن میکروکنترولرها می باشد.اگر ان مباحث را به خوبی درک کرده باشید.اکنون می توانید راحتر،پروگرام کردن میکروکنترولر را انجام دهید.

ما چند روش پروگرام کردن میکروکنترولر داریم

پروگرام کردن میکروکنترولر به دو روش انجام میشود،موازی و سری.

در روش موازی،که یک روش قدیمی نیز می باشد،به کمک تعداد زیادی از پایه های میکروکنترولر و ایسی RS232 به کمک پورت سریالی کامپیوتر،ارتباط بین کامپیوتر و میکروکنترولر برقرار می شود!
  روش امروزه کمتر استفاده میشود،چون کامپیوترهای امروزی دیگر پورت سریالی نیز ندارند و همچنین اشکالات در این روش بود،برای همین کمتر کسی به سراغ این روش میرود(*مگر در زمان هایی خاص)   دیگر سریالی می باشد،که به کمک پورت usb به میکروکنترولر ارتباط برقرار میشود. میکروکنترولر نیز این قابلیت پیشتبانی می کنند.به این روش Usbasp گفته می   تصویر  ما نیز از این روش جدید و بهتر استفاده خواهیم کرد و میکروکنترولرها را پروگرام می کنیم.

پروگرامر پیشنهادی

اینجانب پروگرامر شرکت Eca رو پیشنهاد می کنم،ضمن داشتن گارانتی،قابلیت های خوبی دارد و اینجانب بعد از گذشت چندین سال هنوز از ان استفاده می کنم.
 تصویر 
می توانید از [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]ادرس ان را تهیه کنید.
این پروگرامر usbasp کار می کند! یعنی اینکه نیازی به کابل های موازی برای وصل شدن به کامپیوتر ندارد! و فقط با وصل کردن کابل usb به ان ،سپس هماهنگی سازی ان با سیستم کامپیوتر،می توان به راحتی به کمک نرم افزار، عملیات انتقال برنامه نوشته شده به میکروکنترولر را انجام داد(یا همان پروگرام کرد)

معرفی پرواگرمر
پروگرامر شرکت eca قابلیت های زیادی به داد،اما در این آموزش به قابلیت ها مهم و کاربردی برای پروگرامر اشاره خواهد شد
 تصویر  شماره 3 که با کادر زرد رنگ آن را برجسته کرده ایم:   قرار گرفتن USB پروگرام می باشد،که کابل Usb را به ان اتصال دهید و سپس قسمت دیگر را به کامپیوتر اتصال   شماره 1 که با کادر زرنگ برجسته شده:   قرار گیری میکروکنترولرها ما می باشد.در این قسمت،می توان میکروکنترولرهای 8 تا 40 پایه را قرار داد، اما باید طبق اصول انها را قرار داد،که اصول قرار گرفتن میکروکنترولر توسط خود سایت توضیح داده شده،دفترچه را از [لینک خارجی برای کاربران مهمان مخفی است، لطفا برای مشاهده لینک ثبت نام نموده و یا وارد سایت شوید]دانلود کنید،سپس صفحه 4 را ببینید،  تصویر 
  ما برای قرار دادن،میکروکنترولر بر روی پروگرام،ابتدا،اهرام را به سمت بالا قرار میدهیم،سپس میکروکنترولر را نسبت به تعداد پایه هایشان،به مانند الگو بالا،در پروگرامر خود قرار میدهیم،سپس اهرم را به سمت پایین میکشیم،تا میکروکنترولر محکم سرجایی خود گرفته شود. 
 شماره 5،که با رنگ زرد آن را برجسته کرده ایم:  ،به صورت دیفالت فرکانسش 1 مگاهرتز می باشد،در صورتی که میکروکنترولر تازه ی خریداری کرده ایم،یا که فرکانس کاری میکروکنترولر را برروی 1 مگاهرتز تنظیم کرده باشیم،باید و حتما،این جامپر را وصل کنید،وگرنه پروگرامر را نمی تواند شناسایی کند.(*درصورتی که فرکانس بیش از 1 مگاهرتز باشد،نیازی به وصل کردن ان نیست )  شماره 9 که با رنگ زرد رنگ ان را برجسته کرده ایم:   قرار گیری کریستال می باشد! زمانی که ما فیوزبیت کریستال خارجی (منبع کلاک بیرونی) را برای میکروکنترولر انتخاب کرده باشیم،باید کریستال را به اون دو نقطعه وصل کنید،تا کلاک میکروکنترولر برای پروگرامر کردن تامین شود.    دستگاه پروگرام به همین سادگی می باشد   برای نحویه شناسی پروگرامر توسط کامپیوتر و باقی سوالات بهتر است،به همان آدرس اولیه پروگرامر مراجعه کنید،چون در انجا به زبان فارسی همه توضیحات و اشکالات احتمالی نصب پروگرامر بطور کامل شرح داده شده است .   آشنایی با فیوزبیت ها بهتر است،اینصفحه از تاپیک را مطالعه فرمایید (اخر صفحه 3 تا اویل صفحه 4)و برای تکمیل صحبت ها در رابطه با پروگرام ها،بهتر است،اینتاپیک را نیز   انشالله در پست بعدی،مثالی را به کدویژن آغاز خواهیم کرد و نهایت،انها برای دیدن،برروی میکروکنترولر پروگرام می کنیم...  . 
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

ارسال پست

بازگشت به “آموزش و مثال‌ها AVR”