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





اگر فرم ثبت نام برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.









اگر فرم بازیابی کلمه عبور برای شما نمایش داده نمی‌شود، اینجا را کلیک کنید.





صفحه 1 از 88 123456789101151 ... آخرین
  1. #1
    2011/11/25
    نايين
    715
    29

    کوچ کردن از کدویژن به AtmelStudio

    با سلام درپی درخواست دوستان این تاپیک رو ایجاد کردم تا کسانی که با کدویژن کار میکنند و دوست دارند بتوانند تو محیط AtmelStudio کارکنند و از امکاناتش بهره ببرند، این کار براشون راحت باشه.

    قبل از هرچیز جا داره یک توضیحاتی در رابطه با Atmel Studio بدم:

    Atmel Studio یک محیط برنامه نویسی( IDE ) مختص برنامه نویسی برای میکروکنترلرهاست. کامپایلری که در این محیط استفاده میشه کامپایلر معروف gcc میباشد.
    این محیط برنامه نویسی همون طور که از اسمش پیداست کار شرکت اتمل است که خود تولید کننده یه میکروکنترلرهای مختلفی میباشد.
    این محیط بسیار شبیه Visual Studio شرکت ماکروسافت است ( برخی افراد ویژوال استادیو را جزء عجایب دنیا میدانند(واقعا هم همینطوره) )

    سوال: چرا باید از اتمل استادیو استفاده کنیم؟
    جواب : بایدی در کار نیست و شما بهتر است از هر محیطی که در آن راحت ترید استفاده کنید . ولی اتمل استادیو دارای امکاناتی است که در طول این تاپیک بهش پرداخنه میشه. (به نظر بنده بزرگترین مشخصه ی آن دیباگینگ به صورت شبیه سازی شده است)

    برای دانلود Atmel Studio میتوانید مستقیم از سایت اتمل اقدام به این کار کنید:

    لینک دانلود جدیدترین نسخه Atmel Studio :

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت



    یا میتونید گوگل کنید:
    دانلود atmel studio

    الان جدیدترین نسخه 6.1 است.

    --------------------------------------------------------------------

    قبل از ادامه به خواندن برای یادگیری بهتر ، من در این زمینه توجه شما را به مشاهده ی دو سری آموزشی که من همیشه به دوستان توصیه میکنم، جلب میکنم:

    آموزش زبان سی توسط استاد بازرگان
    آموزش AVR توسط استاد کی نژاد

    ----------------------------------------------------------------------------------------------------------------------------------------------------------------------

    خوب با نام و یاد خدا و به امید موفقیت هرچه بیشتر شروع میکنم:

    پس از نصب اتمل استادیو و اجرای آن شما با یک پنجره مربوط به لودینگ که داخل آن یک کفش دوزک است مواجه میشود(کلا نماد اتمل استادیو کفشک دوزک است)
    بعد از اتمام لودینگ با بازشدن برنامه به یک صفحه Start Page برمیخورید.( ورود شما را به محیط برنامه نویسی اتمل استادیو تبریک میگم )
    برای ایجاد پروژه ی جدید ، راه های زیادی است : یکی از این راه ها کلیک بر روی New Project در سمت چپ صفحه ی Start Page می باشد.
    بعد از کلیک ، پنجره ای باز میشود که زبان و کامپایلر مورد نظر از شما پرسیده میشود همچنین در پایین پنجره میتوانید برای پروژه و سولوشن تان اسم مورد نظر را تعیین کنید و در قسمت Location میتوانید محل و دایرکتوری ایجاد پروژه را مشخص کنید.
    در بالا GCC C Executable Project را انتخاب کنید و با انجام تنظیمات روی دکمه OK کلیک کنید. (باید اضافه کنم در این محیط و با استفاده از کامپایلر gcc شما قادرید با زبان ++C و شیء گرایی اون برنامه نویسی کنید)
    پنجره ی بعدی پنجره ی Device Selection میباشد. که بوسیله ی آن میکروی مورد نظرتون را انتخاب میکنید .(همچنین میتوانید دیتاشیتش را دانلود کنید و...)

    بعد از ok کردن سولوشن و پروژه تون ساخته میشه و یک فایل c. همنام پروژه ایجاد میشه و محتویاتش براتون نشون داده میشه. به صورت زیر:

    کد:
    #include <avr/io.h>
    
    int main(void)
    {
      while(1)
      {
        //TODO:: Please write your application code 
      }
    }
    میبینید که تابع main در اینجا قرار دارد.
    همچنین یک فایل با نام io.h به صوت پیشفرض اینکلود میشود.
    داخل این فایل به نسبت اینکه درقسمت Device Selection چه میکرویی انتخاب شده یک فایل بسیار مهم اینکلود میشود.
    مثلا درصورتی که Mega32 را انتخاب کرده باشید ، فایل avr/iom32.h اینکلود میشود.
    این فایل شما را قادر میسازد تا ماژول های i/o میکروتون کار کنید.
    برای اطلاع بیشتر به لینک زیر برید. یک توضیحاتی در رابطه با قسمتهای مختلف میکرو به دوستمون دادم:
    http://www.eca.ir/forum2/index.php?topic=82558.msg503769#msg503769

    برای اینکه با جزئیات و مفصل دراینباره اطلاع پیدا کنید ، سری آموزشی AVR جناب کی نژاد را دنبال کنید.

    در ادامه پست را به چند قسمت تقسیم میکنم:


    -----------کار با محیط دیباگینگ Atmel Studio -------------------------------------------------------------------------------------

    این بخش می تونه قدرت Atmel Studio را نشان دهد که از پدربزرگ خود یعنی Visual Studio به ارث برده است.(البته به صورت شبیه سازی شده)

    دیباگ کردن عملی است که بوسیله آن برنامه را به صورت دقیق اشکال زدایی میکنیم . برای اشکالزدایی برنامه بایستی دستورات دونه به دونه اجرا شود و نتیجه هر دستور بعد از اجرای آن به برنامه نویس نشان داده شود. در حالت معمولی کدها به سرعت و پشت سرهم توسط پردازنده اجرا میشوند و امکان دیباگینگ کد وجود ندارد ، برای فراهم کردن اینکار بایستی برنامه در بین اجرا به اصطلاح break شود.
    خوب فکر میکنم بهتر باشه از تعریف و تئوری فاصله بگیریم و هرچه سریع تر بریم سراغ کد زدن.
    توصیه جدی: قبل از ادامه خواندن ، حتما Atmel Studio را باید اجرا کنید . و یک پروژه ایجاد کنید و وارد محیط برنامه برنامه نویسی شوید. در غیر این صورت تا فراهم شدن این بستر از خواندن ادامه پست خودداری کنید

    برای مثال ابتدا ما یک برنامه معمولی به شکل زیر مینوسیم:
    کد:
    int a,b;
    void xchange()
    {
    	int temp;
    	temp=a;
    	a=b;
    	b=temp;
    }
    int main(void)
    {
    	char x= 5;
    	DDRA=x;
    	a=3;
    	b=0;	
    	xchange();
    	while(1);
    }
    نکته خیلی مهم: برای دیباگینگ بهتر باید از بهینه سازی کامپایلر جلوگیری کرد ، که برای اینکار 2 راه وجود دارد:
    1- رفتن به شاخه زیر و غیرفعال سازی Optimization :
    project --> main properties --> Toolchain --> AVR/GNU C Compiler --> Optimization
    و در اینجا میتونید سطح بهینه سازی ( Optimization Level ) را تعیین کنید که در اینجا بایستی روی حالت None قرار دهید.

    2- استفاده از کلمه کلیدی volatile در هنگام اعلان متغییرهای برنامه.

    (که در اینجا روش اول توصیه میشود)

    برای ورود به محیط دیباگ روش های متفاوتی وجود دارد که در اینجا شما به صورت زیر عمل کنید.

    با زدن کلید f10 یا f11 به محیط دیباگ وارد شوید.صبر کنید تا یک فلش زرد رنگ کنار اول بلوک تابع main ظاهر بشه. (ورودتون را به محیط دیباگ خوش آمد می گم)

    این فلش زرد رنگ نشون میده که دستور بعدی که اجرا میشه چیه. برای اجرای متوالی می توانید از f10 یا f11 استفاده کنید که با هربار زدن اونها دستوری که فلش زرد رنگ کنارشه اجرا میشود(البته تفاوت هایی داره که بعدا عرض میکنم)

    خوب قبل از اینکه بریم سراغ دیباگینگ برنامه مون ، به امکاناتی که این محیط به ما میده می پردازیم:

    این امکانات به صورت window هایی است که در شاخه Debug --> Windows وجود دارند ، فراهم میشود.

    خوب ما عموما به سه window نیاز داریم که در شاخه ی Debug --> Windows میتوان آنها را اضافه کنیم:

    1- I/O View : این پنجره به ما این امکان را میدهد که مقدار فعلی رجیستر های میکرو را مشاهده کنیم.(خیلی گرافیکی و ساده است ، یکم باش بازی کنید ، متوجه میشوید.)

    2- Watch : این پنجره به ما مقادیر متغییرها و آرایه ها و در کل دیتا آبجکت هایی که تعریف کردیم و در بخش فعلی که هستیم به آنها دسترسی داریم را برای ما مشخص میکند. ( برای این کار در قسمت Name بایستی اسم دیتا آبجکت مد نظرتون را تایپ و Enter کنید. برای بدست آوردن آدرس دیتا آبجکت بایستی از & قبل از اسم آن استفاده کنید)

    3- Memory : این پنجره محتویات حافظه را به صورت کامل برای ما نمایش میدهد.( برای اینکار بایستی فضای حافظه مد نظرتون را از لیست انتخاب کنید.)

    خوب حالا که با ابزار کار آشنا شدیم ، میریم سراغ دیباگینگ برنامه مون .

    هنوز فلش زرد رنگ کنار آکولاد اول تابع main است. با زدن دکمه f10 یا f11 فلش روی دستور char x=5; قرار میگیرد. این یعنی اگر یه بار دیگه f10 یا f11 بزنید دستور char x=5; اجرا میشود. خوب قبل از اجرای این دستور بیاید یک نگاه به پنجره watch بندازیم:

    همان طور که گفته شد یکی از امکانات این پنجره نمایش مقدار فعلی متغییرهایی است که به اون ها دسترسی داریم:
    ما در این برنامه 4 متغییر اعلان شده است : a و b که متغییرهای سراسری هستند و x که متغییر محلی یا local تابع main است و temp که متغییر local تابع xchange است.
    اینجا ما هر 4 متغییر را به پنجره watch می دهیم.

    میبینیم که مقدار متغییر های x و a و b صفر گذاشته شده و این متغییر ها شناخته شده اند ولی متغییر temp چون ما در تابع main به آن دسترسی نداریم ناشناخته (Unknown identifier ) است.
    از این به بعد باید با هربار اجرای یک دستور پنجره watch هم نگاه می کنیم.

    دکمه f10 یا f11 را میزنیم ، با ایتکار مقدار متغییر x برابر 5 میشود .

    دوبار دکمه f10 یا f11 را میزنیم . اینبار به پنجره IO View نگاه میکنیم ، اگر روی PORTA کلیک کنید می بینیم که بیت های 0 و 2 رجیستر DDRA ست میشود.

    دوبار دکمه f10 یا f11 را میزنیم . در پنجره Watch مقدار متغییر a را میبینیم که به 3 تغییر پیدا کرده .

    دوبار دکمه f10 یا f11 را میزنیم . در پنجره Watch مقدار متغییر b را میبینیم که به 0 تغییر پیدا کرده . (البته قبلا 0 بوده)

    خوب الان فلش زرد رنگ کنار xchange(); قرار دارد .
    اینجا میتونیم تفاوت عملکرد دکمه های f10 و f11 را ببینیم:

    عملکرد دکمه f10 : با زدن f10 تابع xchange کامل اجرا میشود و فلش زرد رنگ روی حلقه بینهایت میرود. و اگر پنجره watch را ببنیم ، مقادیر متغییر های a و b با هم عوض میشوند.

    عملکرد دکمه f11 : با زدن f11 دیباگر و فلش زرد رنگ وارد تابع xchange می شود ، و فلش روی آکولاد اول تابع xchange قرار می گیرد .
    دوبار f10 یا f11 می کنیم : چون int x یک اعلان بدون مقدار اولیه است دیباگر از روی آن میگذرد .(یه مطلب جالب ایه که چون دیباگینگ atmel studio نوپاست یک سری باگ دارد ، یکیش اینجا قابل مشاهده است : متغییر x یک متغییر محلی تابع main است و در اینجا باید ناشناخته باشد ، ولی اینجا در پنجره watch مقدار x را صفر نشان داده وکه بعد ورود دوباره به مین درست میشه و همون 5 را نشون میده ولی اینجا بهتر بود متغییر x ناشناخته اعلام می شد.
    با زدن متوالی دکمه f10 یا f11 دستورات تابع دونه دونه اجرا میشود و بعد از اجرای آخرین دستور ، دیباگر وارد تابع main می شود.

    فعلا تا همینجا کافیه . امکانات دیگه مثل قرار دادن break point و ... هم وجود دارد که با بازی کردن در محیط دیباگر می توانید تجربی آنها را فرا بگیرید.



    -----------پستهای به نسبت مفیدتر در این تاپیک -------------------------------------------------------------------------------------

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

    انجام عملیات بیتی روی یک بایت یا رجیستر خاص : http://www.eca.ir/forum2/index.php?topic=81025.msg493466#msg493466

    آشنایی با عملگر شیفت و مقدار دهی به رجیستر ها به صورت رایج تر: http://www.eca.ir/forum2/index.php?topic=81025.msg493484#msg493484

    نحوه کار با توابع تاخیر( delay ) در اتمل استادیو: http://www.eca.ir/forum2/index.php?topic=81025.msg493662#msg493662

    انواع متغییرها از نظر حوزه دسترسی و LifeTimeم : http://www.eca.ir/forum2/index.php?topic=81025.msg499601#msg499601

    چندی در رابطه با پیشوند volatile در سی: http://www.eca.ir/forum2/index.php?topic=81025.msg499818#msg499818 و http://www.eca.ir/forum2/index.php?topic=81025.msg499866#msg499866

    دیتا آبجکت چیست و معرفی استراکچر: http://www.eca.ir/forum2/index.php?topic=81025.msg504542#msg504542

    مختصری در باب اشاره گرها در سی و عملگر <-- : http://www.eca.ir/forum2/index.php?topic=81025.msg504661#msg504661

    یک تابع کوچک برای ارسال طلاعات از طریق یوزارت: http://www.eca.ir/forum2/index.php?topic=81025.msg505180#msg505180

    انواع حافظه ها و دسترسی به حافظه فلش(قسمت اول): http://www.eca.ir/forum2/index.php?topic=81025.msg505462#msg505462

    انواع حافظه ها و دسترسی به حافظه فلش(قسمت دوم): http://www.eca.ir/forum2/index.php?topic=81025.msg505535#msg505535

    کار با وقفه ها و نوشتن روتین وقفه مورد نظر: http://www.eca.ir/forum2/index.php?topic=81025.msg505608#msg505608

    مثال از استفاده از وقفه در برنامه ( ارسال رشته به صورت سریال) : http://www.eca.ir/forum2/index.php?topic=81025.msg505729#msg505729

    -----------راه انداز ماژول های مختلف بوسیله ی میکرو و Atmel Studio -------------------------------------------------------------------------------


    به لینک زیر مراجعه کنید:

    http://www.eca.ir/forum2/index.php?topic=82130.0
    درصورتی که برای ماژول درخواستی شما راه اندازی نبود ، میتوانید در همان تاپیک تقاضا دهید .


    پیشاپیش از سوالات و همکاریتون در این تاپیک تشکر و قدردانی میکنم.
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
  2. #2
    2011/06/02
    461
    12

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    در رابطه با لایبرری ها یکم توضیح بدین مثلا کتابخانه هایی که تو ویژن داریم
    ctype-stdlib-math-string-bcd
    سینتکسشون چطوریه
    چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.
  3. #3
    2011/11/25
    نايين
    715
    29

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    نقل قول نوشته اصلی توسط صادق ابراهیمی
    در رابطه با لایبرری ها یکم توضیح بدین مثلا کتابخانه هایی که تو ویژن داریم
    ctype-stdlib-math-string-bcd
    سینتکسشون چطوریه
    نظر خوبیه که با خوندن فایل های هدر بدست میاد. ولی خوب چون کلش طولانیه ، یواش یواش به هرکدوم میپردازیم.(البته این هدرها یه جورایی برای سی استاندارد شدند و تقریبا برای همه کامپایلرها کارشون مشخصه)
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
  4. #4
    2011/06/02
    461
    12

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    نقل قول نوشته اصلی توسط RubeuS
    نظر خوبیه که با خوندن فایل های هدر بدست میاد. ولی خوب چون کلش طولانیه ، یواش یواش به هرکدوم میپردازیم.(البته این هدرها یه جورایی برای سی استاندارد شدند و تقریبا برای همه کامپایلرها کارشون مشخصه)
    مثل ویژن که نیست؟
    مثلا برای delay

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.
  5. #5
    2011/11/25
    نايين
    715
    29

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    نقل قول نوشته اصلی توسط صادق ابراهیمی
    مثل ویژن که نیست؟
    مثلا برای delay

    مهمان عزیز شما حق دیدن لینک ها را ندارید

    عضویت


    بله منم عرض کردم، همه کارشون مشخصه :
    مثلا همین delay کارش ایجاد تاخیر بوسیله نرم افزار است که با اجرا کردن چندین دستور nop بوجود می آید.
    به عنوان مثال در همه ی کامپایلرها بایستی قبل از استفاده از آن کلاک cpu مشخص شود:
    یجا مثل کدویژن کلاک سی پی یو را باید با تعریف xtal بش بفهمونیم و یه جا مثل gcc باید با تعریف F_CPU بهش بفهمونیم.
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
  6. #6
    2011/11/25
    نايين
    715
    29

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    نقل قول نوشته اصلی توسط صادق ابراهیمی
    در رابطه با لایبرری ها یکم توضیح بدین مثلا کتابخانه هایی که تو ویژن داریم
    ctype-stdlib-math-string-bcd
    سینتکسشون چطوریه

    فکر نمیکنم اینکار عملی باشه چون تعداد توابع خیلی زیاده

    شما با این هدر ها تو کدویژن آشنایید؟ اگر آشنایید ، یواش یواش اسم توابع را بگید تا تو gcc معادل سازی کنیم براش( اگر تو کتابخونه هاش موجود بود که از هدرهای تو gcc استفاده میکنیم وگرنه خودمون تابعش رو مینویسیم.)
    اینطوری بهتر نیست؟؟؟ :question: فکر میکنم خیلی بهتر باشه تا اینکه بخوام کل توابع را بگم(چون خیلیه و خیلیاش هم زیاد کاربرد ندارن)
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
  7. #7
    2011/11/25
    نايين
    715
    29

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    دوستان درصورتی که تابع(توابع) خاصی مدنظرتون هست اعلام بفرمایید تا در رابطه باش گفتگو کنیم
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
  8. #8
    2011/06/02
    461
    12

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    سلام آقای مرتضوی
    چطور از انواع ال سی دی استفاده کنیم
    یه جورایی کتابخونه داره ؟
    یه سوال دیگه برای همین وقفه ها نمیشه که همه رو حفظ کرد یا به فایل هدرش رجوع کرد روش ساده تری هم هست که بشه آرگومان داخل ISR رو پر کرد(مثلا برای فعال سازی وقفه کامل شدن UDR)
    لطفا این لینک روهم ببینید به کمکتون احتیاج دارم
    ممنون
    چه يافت آنــکه تــو را گم کرد وچه گم کرد آنـکه تــو را يافت.
  9. #9
    2011/11/25
    نايين
    715
    29

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    نقل قول نوشته اصلی توسط صادق ابراهیمی
    سلام آقای مرتضوی
    چطور از انواع ال سی دی استفاده کنیم
    یه جورایی کتابخونه داره ؟
    یه سوال دیگه برای همین وقفه ها نمیشه که همه رو حفظ کرد یا به فایل هدرش رجوع کرد روش ساده تری هم هست که بشه آرگومان داخل ISR رو پر کرد(مثلا برای فعال سازی وقفه کامل شدن UDR)
    لطفا این لینک روهم ببینید به کمکتون احتیاج دارم
    http://www.eca.ir/forum2/index.php?topic=81097.new#new
    ممنون
    1- برای کتابخونه هایی از این دست ( که یک ماژول خارج از میکرو را میخواهید درایو کنید) میتونید از avrlib.h استفاده کنید. لینک زیر کمک خوبی بتون میکنه:
    http://www.eca.ir/forum2/index.php?topic=41050.0

    2- شما تو کدویژن مگه چطور وقفه ها را مینوشتی؟ من که بعد از کلمه کلیدی interrupt تو کروشه از دیفاین ها ی معروف استفاده میکردم. مثلا برای سرریز تایمر2 TIM2_OVF یا برای وقفه دریافت سریال از USART_RXC یا ... استفاده میکردم. یه مدت که کار کنید دیگه نیاز به فکر کردن نداره . اینجا هم فرقی نداره از یک سری دیفاین که فقط اسمش کمی عوض شده استفاده کنید. مثلا برای تعریف روتین وقفه روی فلگ UDRE از USART_UDRE_vect استفاده کنید ، فرقی نداره.

    3- چشم ،نگاه میکنم
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
  10. #10
    2011/11/25
    نايين
    715
    29

    پاسخ : کوچ کردن از کدویژن به AtmelStudio

    یکی از دوستان در رابطه با تغییر دادن یک پین سوال کرده بودند، گفتم تو این تاپیکم قرار بدم:
    (این کار فقط مختص رجسترهای DDRX و PORTX و PINX نیست و برای همه رجیستر ها صادق است)

    شما میتونید فایل هدر زیر را اینکلود کنی:

    کد:
    #include <compat/deprecated.h>
    توی این هدر میتونید از توابع ( شبه تابع) زیر استفاده کنید:
    برای صفر کردن یک پین:
    کد:
    cbi(port, bit);
    برای یک کردن یک پین :
    کد:
    sbi(port, bit);


    اگر میخواهید بدونید که cbi و sbi چطور عمل میکنند ، فقط تعاریف زیر را نگاه کنید:
    کد:
    #define cbi(port, bit) (port) &= ~(1 << (bit))
    
    #define sbi(port, bit) (port) |= (1 << (bit))
    به عنوان مثال در کدویژن داریم:
    کد:
    PORTA.3 = 1;
    برای اینکار تو اتمل استادیو:
    کد:
    sbi(PORTA , 3);
    راه اندازي ماژول nrf24l01p براي codevision (ارتباط بيسيم بين دو ميکرو) : Hidden Content Hidden Content AtmelStudio
    نحوه نوشتن اصولي يک لايبرري و درايور نرم افزاري( بصورت ساده) : Hidden Content http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول هاي مختلف توسط اعضاي انجمن
    انشالله به زودي تاپيک ها به روز رساني خواهد شد،
صفحه 1 از 88 123456789101151 ... آخرین
نمایش نتایج: از 1 به 10 از 874

موضوعات مشابه

  1. AtmelStudio
    توسط majidshahbazi68 در انجمن XMEGA
    پاسخ: 10
    آخرين نوشته: 2015/07/13, 15:41
  2. اضافه کردن پروگرمر AVR911 به AtmelStudio 6
    توسط hmd810 در انجمن میکروکنترلرهای AVR
    پاسخ: 0
    آخرين نوشته: 2014/05/21, 20:11
  3. شبکه کردن با i2c در کدویژن
    توسط pezhhan در انجمن میکروکنترلرهای AVR
    پاسخ: 5
    آخرين نوشته: 2013/09/13, 21:35
  4. مشکل در پروگرم کردن atmega16با کدویژن
    توسط MARMARGOON در انجمن میکروکنترلرهای AVR
    پاسخ: 7
    آخرين نوشته: 2013/04/22, 14:07
  5. پاسخ: 5
    آخرين نوشته: 2013/02/06, 09:01

علاقه مندي ها (Bookmarks)

علاقه مندي ها (Bookmarks)

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •