نمایش نتایج: از 1 به 7 از 7
Like Tree2 لایک
  • 1 Post By Tiranoid
  • 1 Post By Nostalgic

موضوع: نوشتن بوتلودر آردوینو روی atmega8

  1. #1
    Junior Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    13

    نوشتن بوتلودر آردوینو روی atmega8

    سلام دوستان و اساتید عزیز
    من با میکرو های اتمل یه خورده کار کردم اما حالا می خوام با آردوینو کار کنم و پروژه هام رو با میکرو و با بوتلودر آردوینو انجام بدم یعنی از برد آردوینو نمیخوام استفاده کنم و فقط میخوام بوتلودر بریزم روی میکرو و با Arduino IDE برنامه های پروژه رو بنویسم و پروژه رو بسازم
    حالا چندتا سوال داشتم:
    1 - اگه مثلا بوتلودر مخصوص ATMEGA8 رو با پروگرامر TNM2000 بریزم روی میکرو و فیوزبیت ها رو هم تنظیم کنم ، میکرو آماده میشه؟ میشه با Arduino IDE براش برنامه نوشت؟
    2 - فایل های خروجی برنامه Arduino IDE چطوریه؟ فایل HEX نمیده که با پروگرامر TNM2000 روی میکرو پروگرام کنم؟

  2. #2
    Member
    تاریخ عضویت
    Apr 2015
    محل سکونت
    ایران :|
    نوشته ها
    76
    مشکلی میتونید دستی بریزید و درست هم میشه

    فایل هگز هم میده که تو پوشه هاش میندازه و دقیقا آدرسشو ندارم.

    در کل بنظر من یه پروگرامر USBAsp بسازید یا بخرید. خود آردویینو هم مستقیما پشتیبانیش میکنه و میتونید بردهای آردویینو و میکروهای اتمل رو باش پروگرام کنید.

    براحتی هم میشه با استفاده از خود برنامه آردویینو و همین USBasp بوت لودر رو رویخت روی میکروها و نیازی هم به دستکاری دستی فیوز بیت ها نیس

  3. #3
    Junior Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    13
    تشکر دوست خوبم
    آیا در اردوینو پرو یا پرو مینی که 8 پین کامل از یک پورت در دسترس نیست امکان خواندن عدد 8 بیتی وجود داره؟ توی پروژم نیاز دارم یه عدد 8 بیتی رو بخونم و طبعا نیاز به 8 پایه دارم و دیتا شیت ها رو بررسی کردم و توی مدل های پرو و پرومینی هیچکدوم 8 پایه مستقل در دسترس نیست
    میشه جداگونه از دو پورت مختلف بخونم و خودم عدد 8 بیتی رو بسازم؟

  4. #4
    Member
    تاریخ عضویت
    Apr 2015
    محل سکونت
    ایران :|
    نوشته ها
    76
    پورت های D0 تا D7 اردویینو یعنی همون 8 تا پین اول، 8 تا پین Port D هستن. 8 تا پین کامل در دسترس هستن.


    اگه میخوای جدا جدا بخونی تو آردویینو بلد نیستم تو همون اتمل استودیو بلدم !

    برای اینکه یه عدد رو از دو تا پورت بخونی، به این روش عمل کن : (این روش مال اتمل استودیوه نمیدونم چجوری تو آردویینو میشه نوشتش)
    فرض کنیم عدد 8 بیتی مورد نظر ما، اینطوری قرار گرفته. 4 بیت اول (4 بیت کم ارزش) اون روی پین های 0 تا 3 پورت B و چهار بیت دیگه ش روی پین های 0 تا 3 پورت C
    حالا یه بایت تعریف میکنیم. (کاراکتر)
    بایت برابر میشه با (کل پورت B) + (کل پورت C که 4 بار به سمت چپ شیفت شده)
    تموم !

    u_int8 Number
    Number = PINB || (PINC << 4)

    البته باید توجه کرد که بقیه پین های پورت B صفر باشن. وگرنه جمع میشن ! اگر اینطوری شده، میتونی پورت بی رو با یه 0x0F اند کنی. اینطوری همه ی 4 بیت با ارزشش صفر میشن.

    اگر کمی پیچیده شد بگو بیشتر توضیح بدم
    لایک کردن

  5. #5
    Junior Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    13
    حرف شما کاملا درسته اما چون پایه های RX و TX رو لازم دارم پس 2 بیت از پورت D رو از دست میدم و مجبورم از پین PB0 و PB1 بخونمشون ، یعنی digital pin 2 تا digital pin 9 رو استفاده کنم
    برای خوندن هم طبق فرمایش خودتون بهتره AND کنم که اشتباهی توی خوندن پیش نیاد
    مثل کد زیر که به نظرم کاری که من میخوامو انجام میده و موقع خوندن digital pin 2 کم ارزشترین بیت و digital pin 9 پر ارزشترین بیت میشه :

    کد:
     mynumber = ((PIND & 0xFC) >> 2) | ((PINB & 0x03) << 6);
    تصویر ATMEGA8 و یا ATMEGA328 رو هم پیوست کردم که تحلیل قضیه راحت تر بشه
    نظرتون چیه؟ درسته؟
    تصاویر کوچک شده (Thumbnails) پیوست شده تصاویر کوچک شده (Thumbnails) پیوست شده arduino-atmega8-pins.png  

  6. #6
    Member
    تاریخ عضویت
    Apr 2015
    محل سکونت
    ایران :|
    نوشته ها
    76
    الان درسته. دو تا بیت با ارزش رو از پورت بی میخونه بقیه رو از پورت سی.

    چطوری میشه تو پست هایی که تو forum میذاریم، کد بنویسیم ؟؟ همین اسنیپت کد که نوشتی شما ؟

  7. #7
    Junior Member
    تاریخ عضویت
    Jul 2016
    نوشته ها
    13
    پایین تاپیک گزینه "صفحه پیشرفته" رو بزنید و توی صفحه جدید روی علامت # مطابق عکس زیر کلیک کنید و بین دو عبارت [code] کدتون رو بنویسید
    تصاویر کوچک شده (Thumbnails) پیوست شده تصاویر کوچک شده (Thumbnails) پیوست شده code.jpg  
    لایک کردن

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

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

SEO by vBSEO