اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام دوستان
    با توجه به یه پروژه ساده ای که دارم ( یه LCD کاراکتری 16*2 یه متنی رو اسکرول میکنه ) ، من موندم یک چیپ AVR مانند ATMEGA8 رو به چه روشی استفاده کنم.

    خب از نظر خودم دو راه دارم (اگر راه بیشتری هم هست بفرمایید ) :

    1. ریختن بوت لودر آردوینو روی ATMEGA و استفاده از کدهای آردوینو برای اوکی کردن پروژه ( چون خودم با آردوینو و زبانش زیاد کارکردم خیلی راحت میتونم برای آردوینو کدهاش رو اوکی کنم ، ) ولی نمیدونم این راه چه معایبی میتونه داشته باشه و پیشنهادتون چیه ؟
    2. استفاده از زبان های AVR حالا با بسکام یا C که هیچ اطلاعاتی ازشون ندارم و نمیدونم چقدر طول میکشه من اینارو یاد بگیرم تا بتونم روی یک ATMEGA8 بدون واسط آردوینو برنامه بریزم که برام جواب بده یا نه (ظاهرا که پیچیده تر از مورد اولی هست ، و اینکه کدهای آردوینو خیلی زیاد تو اینترنت هست ولی مثال و کد برای AVR خیلی کمتره ( البته باز اگر اشتباه میدونم اینم راهنمایی کنید )

    • خب شما پیشنهادتون چی هست ؟ معایب و مزایای این دو گزینه رو میفرمایید ؟
    • و اینکه آیا AVR خیلی پیچیده اس و زمان زیادی میطلبه برای یادگیری و استفاده برای پروژه ؟
    • و فرقهای اساسی که باهم دارن ( این دو گزینه ) چیا هستند ؟
    ارائه سرور و هاست رایگان : kandohost.com

    #2
    پاسخ : استفاده از بوت لودر آردوینو یا کدنویسی با زبان AVR در میکروکنترلر AVR ؟

    نوشته اصلی توسط sjangjoo نمایش پست ها
    سلام دوستان
    با توجه به یه پروژه ساده ای که دارم ( یه LCD کاراکتری 16*2 یه متنی رو اسکرول میکنه ) ، من موندم یک چیپ AVR مانند ATMEGA8 رو به چه روشی استفاده کنم.

    خب از نظر خودم دو راه دارم (اگر راه بیشتری هم هست بفرمایید ) :

    1. ریختن بوت لودر آردوینو روی ATMEGA و استفاده از کدهای آردوینو برای اوکی کردن پروژه ( چون خودم با آردوینو و زبانش زیاد کارکردم خیلی راحت میتونم برای آردوینو کدهاش رو اوکی کنم ، ) ولی نمیدونم این راه چه معایبی میتونه داشته باشه و پیشنهادتون چیه ؟
    2. استفاده از زبان های AVR حالا با بسکام یا C که هیچ اطلاعاتی ازشون ندارم و نمیدونم چقدر طول میکشه من اینارو یاد بگیرم تا بتونم روی یک ATMEGA8 بدون واسط آردوینو برنامه بریزم که برام جواب بده یا نه (ظاهرا که پیچیده تر از مورد اولی هست ، و اینکه کدهای آردوینو خیلی زیاد تو اینترنت هست ولی مثال و کد برای AVR خیلی کمتره ( البته باز اگر اشتباه میدونم اینم راهنمایی کنید )

    • خب شما پیشنهادتون چی هست ؟ معایب و مزایای این دو گزینه رو میفرمایید ؟
    • و اینکه آیا AVR خیلی پیچیده اس و زمان زیادی میطلبه برای یادگیری و استفاده برای پروژه ؟
    • و فرقهای اساسی که باهم دارن ( این دو گزینه ) چیا هستند ؟
    سلام. atmel studio- code vision - arduino IDE کامپایلر هستن و تو هر کدوم میتونی از لایبرری های مختلف استفاده کنی. شما حتی اگه بوت لودر میکروت رو آردویینو نکنی هم میتونی تو محیطش برنامتو بنویسی و فایل هگز خروجی رو روی اتمگات آپلود کنی و میکروت الکی حجم بوت لودر اشغال نکنه. بهترین راه اینه که شما به دیتاشیت میکروی مورد نظر مراجعه کرده و با دقت تمامی رجیستر هارو مطالعه کنین و ازشون استفاده کنین/ این رجیستر های در تمامی این کمپایلر ها قابل شناسایی هست مثلا این برنامه تو محیط arduino ide نوشته شده و از یسری رجیستر مربوط به تایمر داره استفاده میکنه که برای کامپایلر قابل فهم هست
    کد:
    
    float i = 0;
    int x;
    float w;
    float pi = 3.14;
    float f = 0;
    void setup() {
      // put your setup code here, to run once:
      TCCR1A = 0b11110001;
      //COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10
      TCCR1B = 0b00001010;
      //ICNC1 ICES1 – WGM13 WGM12 CS12 CS11 CS10
      DDRB = 0b11111111;
      PORTB = 0b00000000;
    }
    
    
    void loop() {
    
    
      for (w = 0; w < pi; w = 0.0628 + w) {
        x = (sin(-w)) * (255);
        OCR1A = x;
      }
      for (w = 0; w < pi; w = 0.0628 + w) {
        x = (sin(-w)) * (255);
        OCR1B = x;
      }
    
    
    [LEFT]}[/LEFT]

    جدیدترین ویرایش توسط Amir Zia; ۱۸:۱۸ ۱۳۹۷/۱۲/۱۵.






    امیرحسین ضیا

    دیدگاه


      #3
      پاسخ : استفاده از بوت لودر آردوینو یا کدنویسی با زبان AVR در میکروکنترلر AVR ؟

      نوشته اصلی توسط azjaguar نمایش پست ها
      سلام. atmel studio- code vision - arduino IDE کامپایلر هستن و تو هر کدوم میتونی از لایبرری های مختلف استفاده کنی. شما حتی اگه بوت لودر میکروت رو آردویینو نکنی هم میتونی تو محیطش برنامتو بنویسی و فایل هگز خروجی رو روی اتمگات آپلود کنی و میکروت الکی حجم بوت لودر اشغال نکنه. بهترین راه اینه که شما به دیتاشیت میکروی مورد نظر مراجعه کرده و با دقت تمامی رجیستر هارو مطالعه کنین و ازشون استفاده کنین/ این رجیستر های در تمامی این کمپایلر ها قابل شناسایی هست مثلا این برنامه تو محیط arduino ide نوشته شده و از یسری رجیستر مربوط به تایمر داره استفاده میکنه که برای کامپایلر قابل فهم هست
      کد:
      
      float i = 0;
      int x;
      float w;
      float pi = 3.14;
      float f = 0;
      void setup() {
        // put your setup code here, to run once:
        TCCR1A = 0b11110001;
        //COM1A1 COM1A0 COM1B1 COM1B0 FOC1A FOC1B WGM11 WGM10
        TCCR1B = 0b00001010;
        //ICNC1 ICES1 – WGM13 WGM12 CS12 CS11 CS10
        DDRB = 0b11111111;
        PORTB = 0b00000000;
      }
      
      
      void loop() {
      
      
        for (w = 0; w < pi; w = 0.0628 + w) {
          x = (sin(-w)) * (255);
          OCR1A = x;
        }
        for (w = 0; w < pi; w = 0.0628 + w) {
          x = (sin(-w)) * (255);
          OCR1B = x;
        }
      
      
      [LEFT]}[/LEFT]

      در این روش ( فایل hex ) پایه ها باز هم مانند همون ترتیبی هستند که وقتی یک میکرو رو آردوینو میکنیم ؟ در اتصال پایه ها تغییری اتفاق نمیوفته و مثل همون موقع که بوت لودر آردوینو رو burn میکردیم روش ، الان هم طبق همون سیم کشی هارو انجام میدیم ؟ یا در این روش پایه ها تعریف جدیدی پیدا میکنن ؟ برای مثال برای یک LED از خروجی D13 که همون مثلا پایه شماره 7 از سمت راست میکرو هست الانم همون 7 هست یا الان پایه هارو بر حسب اون ردیف آردوینو نمیتونیم در نظر بگیریم ؟
      ارائه سرور و هاست رایگان : kandohost.com

      دیدگاه


        #4
        پاسخ : استفاده از بوت لودر آردوینو یا کدنویسی با زبان AVR در میکروکنترلر AVR ؟

        نوشته اصلی توسط sjangjoo نمایش پست ها
        در این روش ( فایل hex ) پایه ها باز هم مانند همون ترتیبی هستند که وقتی یک میکرو رو آردوینو میکنیم ؟ در اتصال پایه ها تغییری اتفاق نمیوفته و مثل همون موقع که بوت لودر آردوینو رو burn میکردیم روش ، الان هم طبق همون سیم کشی هارو انجام میدیم ؟ یا در این روش پایه ها تعریف جدیدی پیدا میکنن ؟ برای مثال برای یک LED از خروجی D13 که همون مثلا پایه شماره 7 از سمت راست میکرو هست الانم همون 7 هست یا الان پایه هارو بر حسب اون ردیف آردوینو نمیتونیم در نظر بگیریم ؟






        امیرحسین ضیا

        دیدگاه


          #5
          پاسخ : استفاده از بوت لودر آردوینو یا کدنویسی با زبان AVR در میکروکنترلر AVR ؟

          خیلی ممنون از پاسخ عالیتون .

          و این هم برام سوال هست ، من مثلا برای یک پروژه خیلی ساده که قراره 10 تا LED باهم خاموش و روشن بشن ، به صرفه هست که من یه چیپ ATMEGA8 بکار بگیرم و مثلا روی این یه برنامه چند خطی برای اینکار بنویسم ؟ آیا برای اینگونه کارهای ساده از چیپ های ارزونتر و با حجم کمتری هست که بشه استفاده کرد ولی کارایی و نوع کارکردشون همون این مدلی باشه و همین متد باهاش کار کنم.

          خب وقتی میخوایم یه باکس با چندتا LED درست کنم این معقول نیست که 10 تومنش رو بدیم به ATMEGA8 مثلا ، چه سری چیپ هایی هستند که میتونیم ازونا استفاده کنیم برای این منظور ؟ (برای استفاده در کدهای چند خطی و اهداف ساده ) (البته من اینطور فکر میکنم شاید اشتباه باشه ، راهنماییم کنید )

          من با کمی تحقیق در مورد ATTINY 13 که حدود 5 تومن هستش ، اینجوری که من متوجه شدم اینم میشه با همون روش کمی متفاوت تر ، با آردوینو پروگرمش کرد و اینم پیدا کردم :


          که اینجوری که من متوجه شدم ما در این تراشه ، 4 تا پین آنالوگ داریم ، دو تا دیجیتال D0 و D1 و با این روال اگر اینو به آردوینو تبدیل کنیم با همون روش میتونیم ازین پایه ها برای کار های ساده ازش استفاده کنیم . ( اینهارو چون اطمینان نداشتم اینجا مطرح کردم که در صورت درست بودن تایید کنید و در صورت عدم صحیح بودن این اطلاعاتم لطف کرده و توضیح بدین و صحیحش رو بفرمایید)
          باز هم ممنونم از اینکه حمایت کرده و با راهنمایی هاتون دلگرم می کنید.
          ارائه سرور و هاست رایگان : kandohost.com

          دیدگاه


            #6
            پاسخ : استفاده از بوت لودر آردوینو یا کدنویسی با زبان AVR در میکروکنترلر AVR ؟

            نوشته اصلی توسط sjangjoo نمایش پست ها
            خیلی ممنون از پاسخ عالیتون .

            و این هم برام سوال هست ، من مثلا برای یک پروژه خیلی ساده که قراره 10 تا LED باهم خاموش و روشن بشن ، به صرفه هست که من یه چیپ ATMEGA8 بکار بگیرم و مثلا روی این یه برنامه چند خطی برای اینکار بنویسم ؟ آیا برای اینگونه کارهای ساده از چیپ های ارزونتر و با حجم کمتری هست که بشه استفاده کرد ولی کارایی و نوع کارکردشون همون این مدلی باشه و همین متد باهاش کار کنم.

            خب وقتی میخوایم یه باکس با چندتا LED درست کنم این معقول نیست که 10 تومنش رو بدیم به ATMEGA8 مثلا ، چه سری چیپ هایی هستند که میتونیم ازونا استفاده کنیم برای این منظور ؟ (برای استفاده در کدهای چند خطی و اهداف ساده ) (البته من اینطور فکر میکنم شاید اشتباه باشه ، راهنماییم کنید )

            من با کمی تحقیق در مورد ATTINY 13 که حدود 5 تومن هستش ، اینجوری که من متوجه شدم اینم میشه با همون روش کمی متفاوت تر ، با آردوینو پروگرمش کرد و اینم پیدا کردم :


            که اینجوری که من متوجه شدم ما در این تراشه ، 4 تا پین آنالوگ داریم ، دو تا دیجیتال D0 و D1 و با این روال اگر اینو به آردوینو تبدیل کنیم با همون روش میتونیم ازین پایه ها برای کار های ساده ازش استفاده کنیم . ( اینهارو چون اطمینان نداشتم اینجا مطرح کردم که در صورت درست بودن تایید کنید و در صورت عدم صحیح بودن این اطلاعاتم لطف کرده و توضیح بدین و صحیحش رو بفرمایید)
            باز هم ممنونم از اینکه حمایت کرده و با راهنمایی هاتون دلگرم می کنید.
            سلام! اگه پاسخم فقط یه عکس بود به این دلیل بود که اون عکس همه چیو گفته! دو میکروی اتمگا 8 و اتمگا 328 تعداد پایه هاشون برابره و پین اوتشون تقریبا یکیه/
            در مورد اون ATtiny اول باهاس ببینی آیا بوت لودر آردویینو براش پیدا میکنی؟ اگه پیدا کردی و موفق شدی روش برن کنی باید بت بگم که این میکرو از تمامی دستورات آردویینو پشتیبانی نمیکنه ولی خب اگه بخوای از یک پین برای خاموش و روشن کردن 10 led استفاده کنی به مشکل بر نمیخوری! مسعله اینجاس چرا میخوای از میکرو استفاده کنی اگه به یک پین نیاز داری که قراره ده تا led رو خاموش روشن کنه/ چرا از آیسی تایمرر استفاده نمیکنی/اگه میخوای مجزا خاموش و روشن شن یه اتمگا 8 بخر/ کلا 8 تمنه و الان 8 تمن پولی نیست






            امیرحسین ضیا

            دیدگاه

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