اطلاعیه

Collapse
No announcement yet.

برنامه نویسی با IAR AVR

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    برنامه نویسی با IAR AVR

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

    به امید موفقیت.

    #2
    پاسخ : برنامه نویسی با IAR AVR

    با سلام
    من هم به شما برای شروعتون تبریک میگم !!
    ولی یک نکته دوست عزیز استفاده از IAR را واقعاً می خواهید ادامه بدید چون احتمالاً همانطوری که خودتون می دونید این کامپایلر تقریباً هیچ تابع آماده ای برای کار با میکروکنترلر نداره و حتی یک تاخیر ساده را نیز باید خودتان برنامه ریزی کنید . البته به نظر خود من این حالت واقعاً یک مزیت به شما می رود . چون برای کامپایلر های دیگر این توابع نوشته شده اند و تنها کاری که شما لازم است بکنید از آنها اقتباس باید بکنید و فقط به فکر بهینه سازی یا تقلیل کدتان باشید که در برنامه نویسی حرفه ای این حالت بدرد می خورد .
    ولی اگر تازه کار هستید من به شما CodeVision یا حتی Bascom را پیشنهاد می کنم .
    در کل اگر تصمیمتان را گرفته اید و می خواهید ادامه دهید خوشحال می شویم با شما همکاری داشته باشیم . فقط بهتر بود برای شروع یک سوالی مطرح می شد
    موفق باشید :job:
    Aristar Group - Always And Forever

    دیدگاه


      #3
      پاسخ : برنامه نویسی با IAR AVR

      خوشبختانه من تازه کار نیستم و یه شش هفت سالی هست که با avr کار میکنم. من متاسفانه تو این مدت فقط با codevision کار میکردم و به علت کمبود وقت و فشردگی کاری فرصت تغییر کامپایلر رو نداشتم.
      اما به دلیل یک پروژه که به رم زیادی شاید 512 کیلو یا بیشتر مجبور شدم سوییچ کنم روی xmega . توی کامپایلر هایی که xmega رو ساپورت میکنن cv و winavr هر دو اشاره گر آدرسشون 16 بیتی هست و تنها IAR هست که اشاره گر آدرسش میتونه بسته به مدل حافظه ای که انتخاب میکنیم تا 24 بیتی هم بشه و به این خاطر تقریبا چاره ای جز انتخاب IAR ندارم.
      البته از قدیم گفتند : خمیر مایه دکان شیشه گری سنگ است عدو شود سبب خیر اگر خدا خواهد.

      من همیشه تو میخواستم برم سراغ یک کامپایلر قوی مثل IAR یا Winavr که بالاخره IAR انتخاب شد و از این بابت هم خوشحالم.
      فقط باید یه مدت باهاش ور برم تا قلق هاش دستم بیاد.
      اگر شما با IAR کار کردین ممنون میشم کمی منو راهنمایی کنید.

      البته من با این برنامه ساده متوجه شدم که IAR اشاره گر 24 بیتی هم داره :

      include <ioavr.h>
      #include <intrinsics.h>
      #define EXTERNAL_SRAM_START 0x3000
      #define EXTERNAL_SRAM_SIZE 16777216
      #define EXTERNAL_SRAM_END (0x3000 + 16777216 - 1)
      char buf[15777215];
      int main()
      {
      PORTE_DIR = 0xFF; //Set PORTE as output(LEDs DATA)
      buf[100000]=1;
      while(1)
      {
      PORTE_OUT = 0x55;
      __delay_cycles(200000);
      PORTE_OUT = 0xAA;
      __delay_cycles(200000);
      }
      }

      دیدگاه


        #4
        پاسخ : برنامه نویسی با IAR AVR

        من الان دارم یه برنامه مینویسم که توش ار یک سری define که تو هدر Atmel/ATxmega64A1.h تعریف شده استفاده میکنم اما کامپایلر میگه نمیشناسمشون در صورتیکه من هدر رو به سورس اضافه کردم و مسیر هر رو هم درست تشخیص داده .

        مثلا PMIC_HILVLEN_bm که در هدر هست اما خطا میده. اگر شما تو هدر سرچ بزنی پیداش میکنی
        #define PMIC_HILVLEN_bm 0x04 ///< High Level Enable bit mask

        دیدگاه


          #5
          پاسخ : برنامه نویسی با IAR AVR

          آقا مشکل رو حل کردم یه تنظیمی رو باید ست میکردم

          دیدگاه


            #6
            پاسخ : برنامه نویسی با IAR AVR

            آقا یه سوال : چجوری میشه از توابع استاندارد مثل printf در IAR استفاده کرد . مثلا در کد ویژن میومدیم میگفتیم #ALTERNATE PUTCHAR و در این تابع فرضا میگفتیم در usart0 یا usart1 یا حتی LCD بنویس و حالا میتونستیم از printf استفاده کنیم.

            دیدگاه


              #7
              پاسخ : برنامه نویسی با IAR AVR

              در انجمن XMEGA تاپیکی در این مورد وجود دارد که مطالبی در مورد کامپایلر IAR نوشته شده و با توجه به اینکه قصد کار با XMEGA را دارید، می توانید سوالات خود را در ادامه همان تاپیک مطرح کنید:

              http://www.eca.ir/forum2/index.php?topic=41476.0

              نوشته اصلی توسط حسین جباری
              با سلام
              همانطوری که خودتون می دونید این کامپایلر تقریباً هیچ تابع آماده ای برای کار با میکروکنترلر نداره و حتی یک تاخیر ساده را نیز باید خودتان برنامه ریزی کنید.
              با توجه که ایشان قصد کار با XMEGA را دارند، برای فعال سازی بخش های مختلف XMEGA تعداد زیادی کتابخانه آماده از طرف Atmel برای IAR در اختیار قرار داده شده که به راحتی می توان بخش های مختلف را از طریق IAR (یا GCC) فعال کرد.
              اوژن: به معنای افکننده و شکست دهنده است
              دانایی، توانایی است-Knowledge is POWER
              برای حرفه ای شدن در الکترونیک باید با آن زندگی کرد
              وضعمان بهتر می شود، اگر همه نسبت به جامعه و اطراف خود مسوول باشیم و نگوئیم به ما چه
              قوی شدن و خوب ماندن - خوبی کردن به دیگران یک لذت ماندگار است
              اگر قرار باشد نفت و منابع خام را بدهیم و چرخ بگیریم، بهتر است چرخ را از نو اختراع کنیم
              ساعت کار بدن اکثر انسان ها کمتر از 800000 ساعت است و بعد از آن از کار می افتد

              دیدگاه


                #8
                پاسخ : برنامه نویسی با IAR AVR

                نوشته اصلی توسط amir_mhdi
                آقا یه سوال : چجوری میشه از توابع استاندارد مثل printf در IAR استفاده کرد . مثلا در کد ویژن میومدیم میگفتیم #ALTERNATE PUTCHAR و در این تابع فرضا میگفتیم در usart0 یا usart1 یا حتی LCD بنویس و حالا میتونستیم از printf استفاده کنیم.
                سلام
                برای استفاده از تابع Printf ابتدا باید فایل stdio.h رو فراخوانی بکنید بعداً از آن تابع استفاده کنید .
                در ضمن باید خروجی رو نیز کانفیگ کنید
                موفق باشید :job:
                Aristar Group - Always And Forever

                دیدگاه


                  #9
                  پاسخ : برنامه نویسی با IAR AVR

                  آقا من شرمنده ام ، اما مثل اینکه شما متوجه منظور من نشدید.
                  منظور من دقیقا بخش دوم فرمایشات شما بود. یعنی چجوری به IAR بفهمونم که "آقای printf شما الان از putchar ی که بنده نوشتم استفاده کن" حالا من تو این تایع با تعریف یک متغیر و تغییر مقدار اوون تو برنامه میام یکبار به مثلا usart1 میفرستم و یکبار هم به usart0 یا LCD یا هرچیزی...
                  حالا اینکار رو تو کدویژن با یک دستور #ALTERNATE PUTCHAR انجام میدادیم . تو IAR چجوری انجام میشه.
                  ممنون.

                  دیدگاه

                  لطفا صبر کنید...