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

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

عالی و ساده بود،ادامه دهید
18
82%
خوب و قابل فهم بود،ادامه دهید
4
18%
ساده و قابل فهم نبود.
0
بدون راي
تکراری و سخت بود.
0
بدون راي
 
کل آرا : 22
Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » يکشنبه 23 خرداد 1395 10:23

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

اما حلقه for، حلقه for را می توان به مانند حلقه while تودرتو نوشت

به عنوان مثال

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



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

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

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

دستور switch

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

اصول نوشتن:
(عبارت)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 بیشتر در ساخت کیبوردها و موارد دیگر استفاده میشود .(انشالله در آینده بیشتر با ان اشنا خواهید شد)

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

4 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » دوشنبه 24 خرداد 1395 10:09

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

دستور goto

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

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

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

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

:a

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

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

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

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

4 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » سه شنبه 25 خرداد 1395 07:46

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

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

آرایه ها


آرایه ها، در واقع از مجموعه از متغیرها تشکیل شده اند.چرا؟! در برنامه نویسی،ما نیاز داریم،(شاید بیش از نیمی از پروژها)، با مجموعه از متغیرها کار کنیم،اما ما نمی توانیم به عنوان مثال 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 می باشد

*نکته مهم: ما زمانی که یک متغیر ارایه ی تعریف می کنیم، برنامه ان را از 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 های ماتریکسی می باشد. آرایه ها بار سنگینی را از دوش برنامه نویسان برداشتن.نباید هیچ وقت انها را دست  کم گرفت.
آرایه به صورت دوبعدی و سه بعدی هم نوشته میشوند،اما فعلا به انها نمی پردازیم .

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

3 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » چهارشنبه 26 خرداد 1395 09:08

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

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

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

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

کتابخانه ها،به دو دسته تقسیم میشوند، رسمی و غیر رسمی.

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

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

3 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

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

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


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

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

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

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

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


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

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

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


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

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

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

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


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

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

که اینطور نوشته میشوند:
(زمان تاخیر براساس میلی ثانیه)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 می کند.

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

4 کاربر از این پست سپاسگزاري کرده اند

New Member



no avatar
پست ها

4

تشکر کرده: 849 مرتبه
تشکر شده: 4 مرتبه
تاريخ عضويت

دوشنبه 10 اردیبهشت 1386 20:32

آرشيو سپاس: 2 مرتبه در 1 پست

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

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

با سلام خدمت جناب سیناست و با تشکر از آموزشهای بسیار خوبتون
یه نکتم من بگم اگر فقط این سه خط رو تو حلقه بی نهایت بنویسیم ال ای دی چشمک نمیزنه و کلا روشنه چون زمان خاموش بودن اینقدر کمه که دیده نمیشه
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
{

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » يکشنبه 30 خرداد 1395 11:19

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

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

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

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


کتابخانه string.h

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

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

(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 که در رم می باشد،کپی می کند.

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

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » دوشنبه 7 تیر 1395 11:26

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

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

اما در ادامه معرفی کتاخانه ها
کتابخانه ctype.h

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

تابع (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

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

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

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

3 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » جمعه 18 تیر 1395 17:45

با سلام

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

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

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

3 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » شنبه 19 تیر 1395 10:59

باسلام

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

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

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

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

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

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

jamalmusic از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » جمعه 1 مرداد 1395 10:01

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



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

ابتدا  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد فایل پروژه کدویژن را از اینجا دانلود کنید.سپس ان را از حالت زیپ خارج کنید،و وارد پوشه شوید و بر روی فایل 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 نیز راهنمایی استفاده از نرم افزار و برنامه نویسی می باشد و همچنین می توان لیسانس و دیگر چیز ها را به کمک این گزینه بررسی کرد .
ادامه دارد..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

4 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6603

تشکر کرده: 1669 مرتبه
تشکر شده: 8138 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

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

توسط sinaset » جمعه 8 مرداد 1395 10:14

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


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

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

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


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

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

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

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

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

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

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

معرفی پرواگرمر
پروگرامر شرکت eca قابلیت های زیادی به داد،اما در این آموزش به قابلیت ها مهم و کاربردی برای پروگرامر اشاره خواهد شد
شماره 3 که با کادر زرد رنگ آن را برجسته کرده ایم:
محل قرار گرفتن USB پروگرام می باشد،که کابل Usb را به ان اتصال دهید و سپس قسمت دیگر را به کامپیوتر اتصال دهید
شماره 1 که با کادر زرنگ برجسته شده:
محل قرار گیری میکروکنترولرها ما می باشد.در این قسمت،می توان میکروکنترولرهای 8 تا 40 پایه را قرار داد، اما باید طبق اصول انها را قرار داد،که اصول قرار گرفتن میکروکنترولر توسط خود سایت توضیح داده شده،دفترچه را از  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد دانلود کنید،سپس صفحه 4 را ببینید،

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

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

4 کاربر از این پست سپاسگزاري کرده اند

قبليبعدي

 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان