ايران ويج

نسخه‌ی کامل: آموزش کار با ATMEL STUDIO و AVR-GCC
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4
امروز میخوام کار با وقفه هارو آموزش بدم برای این کار کتابخانه ی "AVR/INTERRUPT.H" رو به برنامه اضافه کنید
توجه کنید که تمامی ادرس های وقفه رو توی فایل اصلی بنویسید وگرنه خطا میده
اولین دستور ها
کد:
sei();
cli();
اولی وقفه ی سراسری رو فعال می کنه دومی غیر فعال
-
کلا برنامه ای که اجرا میشه توی یه قسمتی مثل زیر هست
کد:
ISR(ADC_vect){
//code here
}
مثلا این وقفه ی انالوگ به دبجیتال رو به این جا میاره
برای هر قسمتی اسم مخصوص به خودش رو داره این جا دنبالش بگردید
اگه یه وقفه ای رخ بده که هیچ چیزی براش تعریف نکرده باشید مثل بالا موجب میشه میکرو ریست بشهBiggrin!
برای همین از این استفاده کنید که همه ی وقفه هایی که بردارشون مشخص نشده به اینجا برن
کد:
ISR(BADISR_vect)
{
    // user code here
}
اصولا وقتی وقفه رخ میده وقفه ی سراسری غیر فعال میشه و بعد فعال تا توی وقفه وقفه انجام نشه برای غیر فعال کردن این قابلیت این جوری استفاده کیند
کد:
ISR(XXX_vect, ISR_NOBLOCK)
{
  ...
}
اگه می خواید دو تا وقفه به یک جا برن اینجوری استفاده کنید
کد:
ISR(PCINT0_vect)
{
  ...
  // Code to handle the event.
}

ISR(PCINT1_vect, ISR_ALIASOF(PCINT0_vect));
الان دومی به همون اولی میره
اگه می خواید هیچ برنامه ای اجرا نشه اینو استفاده کنید
کد:
EMPTY_INTERRUPT(ADC_vect);
یکسری چیز هایی رو خود کامپایلر مدیریت می کنه مثل ذخیره ی SREG و باز گشت از وقفه و غیره اگه می خواید برنامه سریع تر اجرا بشه یا هرچی دیگه اینجوری استفاده کنید
کد:
ISR(TIMER1_OVF_vect, ISR_NAKED)
{
  PORTB |= _BV(0);  // results in SBI which does not affect SREG
  reti();
}
اون reti اخر باید باشه چون باعث برگشت از وقفه میشه در ضمن بدونید که چون هیچ کد اضافی نمی شه ممکن هست داده های مربوط به برنامه که ذخیره شدن رو از بین ببرید پس اگه این کاره نیستید بی خیال شید
-
اینم باعث بازگشت از وقفه میشه به طور عادی نیازی به این نیست مگر جا هایی که گفتم
کد:
reti     (         )
داداش واقعا دمت گرم کارت درسته ادامه بده.
دقیقا دنبال همچین چیزی میگشتم که کتابخونه های gcc رو آموزش بده
ورژن 6.1 بتا در سایت اتمل قابل دانلود کردن است
-
تقریبا کتابخونه های پر کاربرد رو گفتم دیگه چیزی تو ذهنم نیست اینا یی که مونده یا خیلی کاربردی نیستن یا خودم هم باهاشون کار نکردم
-
انشاالله کاربردی کنیم کار روBiggrin
من چند وقتی هست که با این ATMEL STUDIO کار میکنم لازم بود چند نکته را خدمت دوستان عرض کنم :

1 - برنامه های نوشته شده با ورژن های قبلی WINAVR در این نرم افزار مثلا قابل استفاده هستند اما . . . همش لافه . . . باید تک تک فایل ها که INCLUDE شدن رو خودتون اضافه کنین و برخی از متغیرها رو نمیشناسه .
2 - سرعت تصحیح گر مثلا هوشمندش بشدت افتضاحه و کلا مثل VISUAL STUDIO نیست سرعت خود کامپایلر رو هم خیلی کم کرده کلا افتضاحه. . .
3 - انواع و اقسام ارورهای عجیب و غریب رو میتونین ببینین و برنامه خیلی هنگ میکنه . ..
4 - برنامه با VISUAL STUDIO نوشته شده و تحت .NET که همین موضوع باعث میشه خطا های .NET رو هم به همراه داشته باشه .NET پلتفرم قابل اعتمادی نیست که یه همچین برنامه ای هم با اون نوشته بشه
اگه از ورژن 5 استفاده کرده باشین میبینین که واقعاخیلی خیلی افتضاح بود تو این ورژن که خورده بهتر شده اما . . . کلا برای برنامه نویسی نرم افزار مطمئنی نیست و بدرد بخور نیست اون هم با این حجم بالا
(۲۷-اسفند-۱۳۹۱, ۱۸:۵۴:۵۷)nasras2010 نوشته است: [ -> ]من چند وقتی هست که با این ATMEL STUDIO کار میکنم لازم بود چند نکته را خدمت دوستان عرض کنم :

1 - برنامه های نوشته شده با ورژن های قبلی WINAVR در این نرم افزار مثلا قابل استفاده هستند اما . . . همش لافه . . . باید تک تک فایل ها که INCLUDE شدن رو خودتون اضافه کنین و برخی از متغیرها رو نمیشناسه .
2 - سرعت تصحیح گر مثلا هوشمندش بشدت افتضاحه و کلا مثل VISUAL STUDIO نیست سرعت خود کامپایلر رو هم خیلی کم کرده کلا افتضاحه. . .
3 - انواع و اقسام ارورهای عجیب و غریب رو میتونین ببینین و برنامه خیلی هنگ میکنه . ..
4 - برنامه با VISUAL STUDIO نوشته شده و تحت .NET که همین موضوع باعث میشه خطا های .NET رو هم به همراه داشته باشه .NET پلتفرم قابل اعتمادی نیست که یه همچین برنامه ای هم با اون نوشته بشه
اگه از ورژن 5 استفاده کرده باشین میبینین که واقعاخیلی خیلی افتضاح بود تو این ورژن که خورده بهتر شده اما . . . کلا برای برنامه نویسی نرم افزار مطمئنی نیست و بدرد بخور نیست اون هم با این حجم بالا
نظر شما محترم هست ولی
1- اگه برنامه رو به صورت استاندارد بنویسید کاملا برنامه های WINAVR با این کامپایلر هماهنگ هستن
2- تصحیح گر رو منظورتون رو نمی دونم ولی اگه منظورتون اون ابزاری هست که وقتی تعدادی از حروف رو می نویسید ادامه رو نمایش میده - و در تعریف متغییر ها و ... کمک می کنه باید بگم یه افزونه هست و اونی که شما در ماکروسافت می بینید مال خودش هست کما اینکه VC++ هم این قابلیت رو نداره و باید از همین افزونه استفاده کنید اگه شما مشکلی دارید می تونید از افزونه های دیگری استفاده کنید
3-اروری عجیب قریب نیست و تمامی رو GCC ایجاد می کنه شما باید با مرجعه به مرجع علت اررور رو پیدا کنید و رفعش کنید این که در ظاهر شما متوجه منظور خطا نمی شید عجیب قریب نیست گاهی وقت ها خطا هایی پیش میاد که تا حالا با هاش روبرو نشدیم
4- من از مشکلات دات نت خبری ندارم ولی برنامه ای که شما می نویسید که دات نت نیست کامپایلر هم با دات نت نیست فقط محیط با این زبون نوشته شده حالا شاید مشکلی هم داشته باشه ولی به برنامه شما انتقال پیدا نمی کنه
------
اصولا کامپایلر کامل وجود نداره همه نواقصی دارن و باتوجه به رایگان بودن این نرم افزار بسیار قدرت مند است هر گونه مشکلی به علت اپن سورس بودن کامپایلر در صورت گزارش برطرف می شود
اگر می بینید من از این کامپایلر استفاده می کنم و از کامپایلر قدرت مندی مثل IAR استفاده نمی کنم فقط برای رایگان و اپن سورس بودن است همه باید تلاش کنیم از نرم افزار های کرک شده ی کم تری استفاده کنیم
-------
از نظر شما سپاس گزاریم حتما برخی در قبل از انتخاب این کامپایلر به موضوعاتی که گفتید توجه می کنن
از جواب مودبانه شما مشخص بسیار با فهم و شعور وبا کمالات هستین این عیبهایی که بنده تذکر دادم واقعا وجود دارد من برنامه VUSB رو خواستم باهاش کامپایل کنم ( این برنامه با GCC ) نوشته شده اما بیش از صد ارور دادوقتی ارورها رو بررسی کردم معلوم شد فایل INCLUDE شد رو پیدا نمیکنه همه فیلها را بصورت دستی به برنامه اضافه کردم اما دوباره . . . بهر حال مجبور شدم یه WINAVR عهد بوق ( تازگی ورژن جدیدی ارائه نکرده ) دانلود کنم و با اون هیچ مشکلی نداشتم ، برنامه هایی که بتازگی ارائه میشن از این مشکلات دارند و طبیعی هست دیباگر اون از فایل BIN,OBJ قرار بود پشتیبانی کنه ( این فایل توسط BASCOM تولید میشه ) اما اگه این فایل رو برای دیباگ به نرم افزار معرفی کنین هنگ میکنه ( فایلهای تولید شده بوسیله CODVISION رو امتحان نکردم ) تمامی این مشکلات در سایر کامپایلر ها هم وجود داره بهر حال خواستم دوستان متوجه باشند اگر از برنامه ای جواب نگرفتن احتمال ایراد از طرف کامپایلر رو هم در نظر بگیرن تا سردرگم نشن
(۳۰-اسفند-۱۳۹۱, ۰۸:۵۰:۰۰)nasras2010 نوشته است: [ -> ]از جواب مودبانه شما مشخص بسیار با فهم و شعور وبا کمالات هستین این عیبهایی که بنده تذکر دادم واقعا وجود دارد من برنامه VUSB رو خواستم باهاش کامپایل کنم ( این برنامه با GCC ) نوشته شده اما بیش از صد ارور دادوقتی ارورها رو بررسی کردم معلوم شد فایل INCLUDE شد رو پیدا نمیکنه همه فیلها را بصورت دستی به برنامه اضافه کردم اما دوباره . . . بهر حال مجبور شدم یه WINAVR عهد بوق ( تازگی ورژن جدیدی ارائه نکرده ) دانلود کنم و با اون هیچ مشکلی نداشتم ، برنامه هایی که بتازگی ارائه میشن از این مشکلات دارند و طبیعی هست دیباگر اون از فایل BIN,OBJ قرار بود پشتیبانی کنه ( این فایل توسط BASCOM تولید میشه ) اما اگه این فایل رو برای دیباگ به نرم افزار معرفی کنین هنگ میکنه ( فایلهای تولید شده بوسیله CODVISION رو امتحان نکردم ) تمامی این مشکلات در سایر کامپایلر ها هم وجود داره بهر حال خواستم دوستان متوجه باشند اگر از برنامه ای جواب نگرفتن احتمال ایراد از طرف کامپایلر رو هم در نظر بگیرن تا سردرگم نشن
آموزش V-USB
علت این اررور ها ابدیت نشدن این کتابخانه هست که با استاندارد های جدید GCC نمی خونه WINAVR هم 3 سال هست ابدیت نشده برای همین روی اون کار می کنه
-
فایل های بسکام رو من ازمایش کردم قرار هم هست اموزش شبیه سازی رو هم بدم فعلا یکم سرم شلوغه - کدوبژن جواب نمیده
-
خواهشا ادامه ی بحث رو در بخش ازاد بدید بست از موضوعش منحرف نشه
سلام.
بهزاد جان ممنونم واسه آموزش شیرینت.
میشه لینک کتابخونه هارو از نو بزاری؟
(۰۲-تير-۱۳۹۲, ۱۲:۰۰:۴۸)h.unique نوشته است: [ -> ]سلام.
بهزاد جان ممنونم واسه آموزش شیرینت.
میشه لینک کتابخونه هارو از نو بزاری؟
کدوم کتابخونه؟ اینا همش تو خودش هستن ها!Amaze
نه .
مثلا LCD توش نیس .
(۰۳-تير-۱۳۹۲, ۰۰:۴۷:۵۳)h.unique نوشته است: [ -> ]نه .
مثلا LCD توش نیس .
بله این کتابخونه ها رو باید ببینی چه کسی به صورت آزاد نوشته دانلود کنی و استفاده کنی مثلا TWI هم نداره که من کتابخونه اش رو گذاشته بودم قبلا ها ...
‍پیدا کردی برای ما هم بزارWink پیدا نکردی هم خودت بنویس و به صورت آزاد منتشر کن کلی آدم در دنیا دعا به جونت می کننClap
صفحه‌ها: 1 2 3 4