اطلاعیه

Collapse
No announcement yet.

مشکل با راه اندازی ATMega16A

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

    مشکل با راه اندازی ATMega16A

    سلام
    من یک میکرو کنترولر AVR با شماره ATMEGA16A دارم . که پایه های VCC , GND رو وصل کردم و PORTB رو برای خروجی در کد ویژن ست کردم ، برنامه ای که نوشتم هم در پروتئوس تست کردم ولی روی میکروکنترلر کار نمی کنه . به نظر شما کاری هست که انجام نشده باشه ؟ مثلا آیا اسیلاتور داخلی رو باید دستی فعال کنم ؟

    #2
    پاسخ : مشکل با راه اندازی ATMega16A

    تو تنظیمات فیوزبیت ها ، jtag را 1 ( unprogrammed ) کنید.

    بتون توصیه میکنم فیلم های موجود در سایت knowledgeplus.ir را حتما مشاهده کنید. ( حداقل قسمتهای مربوط به فیوزبیت ها)

    راه اندازی ماژول nrf24l01p برای codevision (ارتباط بیسیم بین دو میکرو) : http://www.eca.ir/forum2/index.php?topic=78587.0
    کوچ کردن از کدویژن به http://www.eca.ir/forum2/index.php?topic=81025.0 : AtmelStudio
    نحوه نوشتن اصولی یک لایبرری و درایور نرم افزاری( بصورت ساده) : http://www.eca.ir/forum2/index.php?topic=81071
    http://www.eca.ir/forum2/index.php?topic=82130.0 سفارش راه انداز ماژول های مختلف توسط اعضای انجمن
    انشالله به زودی تاپیک ها به روز رسانی خواهد شد،

    دیدگاه


      #3
      پاسخ : مشکل با راه اندازی ATMega16A

      من از کد ویژن استفاده می کنم و به طور پیش فرض JTAG غیر فعال یعنی 1 هست . موقع پروگرام کردن اگه تیک بزنیم 0 میشه دیگه!؟!

      خروجی PORTB رو با ولت متر اندازه گرفتم ، تقریبا ثابت هست . ولی من در برنامه تنظیم کردم که high و low بشه!!!

      دیدگاه


        #4
        پاسخ : مشکل با راه اندازی ATMega16A

        نوشته اصلی توسط nakisa.amarello
        سلام
        من یک میکرو کنترولر AVR با شماره ATMEGA16A دارم . که پایه های VCC , GND رو وصل کردم و PORTB رو برای خروجی در کد ویژن ست کردم ، برنامه ای که نوشتم هم در پروتئوس تست کردم ولی روی میکروکنترلر کار نمی کنه . به نظر شما کاری هست که انجام نشده باشه ؟ مثلا آیا اسیلاتور داخلی رو باید دستی فعال کنم ؟
        سلام
        فیوز بیت JTAG واسه پورت C هستش نه B.
        دقیقا شما باید اسیلاتوری که میکرو از اونجا کلاک میگیره رو مشخص کنید میتونید روی 8MHz داخلی ست کنید.
        در ضمن این رو هم چک کنید :
        کد:
        DDRB=0xFF;
        PORTB=0x00;
        PORTB.0 رو یک ثانیه یکبار خاموش روشن کنید و یک LED به میکرو متصل کنید و خاطر جمع بشید که میکروتون داره کار میکنه.

        دیدگاه


          #5
          پاسخ : مشکل با راه اندازی ATMega16A

          همون طور که جناب باقمیرانی گفتن جیتگ روی پورت C هستش نه B(این از اون بی دقتی هاس)
          فقط فکر میکنم بهتر باشه اون کد آقا محمد اینجوری باشه:


          کد:
          DDRB=0xFF;
          PORTB=0xff;
          ولی خب شما با دوتاش تست کنید.

          دیدگاه


            #6
            پاسخ : مشکل با راه اندازی ATMega16A

            نوشته اصلی توسط rozeh
            همون طور که جناب باقمیرانی گفتن جیتگ روی پورت C هستش نه B(این از اون بی دقتی هاس)
            فقط فکر میکنم بهتر باشه اون کد آقا محمد اینجوری باشه:


            کد:
            DDRB=0xFF;
            PORTB=0xff;
            ولی خب شما با دوتاش تست کنید.
            rozeh جان عزیز باغمیرانی هستم :mrgreen:

            تعریفی که واسه DDR و PORT هستش به این صورته :
            موقعی که میخواهید یک پورت را به عنوان خروجی قرار دهید مقدار DDR اون پورت باید متناظر با هر خط پورت 1 شود.
            و در مورد ورودی قرار دادن یک پورت نیز به همین صورت می باشد هنگامیکه بخواهیم یک پورت یا هر خط اون پورت را ورودی قرار دهیم باید مقدار متناظر PORT را 1 کنیم.

            همزمان هم نمیتونه یک خط از پورت هم ورودی باشه هم خروجی.
            امیدوارم توضیحم خوب بوده باشه فقط اگه میخوایین خاطرتون جمع بشه میتونید از Wizard استفاده کنید تا متوجه این مقداردهی ها بشوید.

            دیدگاه


              #7
              پاسخ : مشکل با راه اندازی ATMega16A

              نوشته اصلی توسط Mohammad Baghmirani
              rozeh جان عزیز باغمیرانی هستم :mrgreen:

              تعریفی که واسه DDR و PORT هستش به این صورته :
              موقعی که میخواهید یک پورت را به عنوان خروجی قرار دهید مقدار DDR اون پورت باید متناظر با هر خط پورت 1 شود.
              و در مورد ورودی قرار دادن یک پورت نیز به همین صورت می باشد هنگامیکه بخواهیم یک پورت یا هر خط اون پورت را ورودی قرار دهیم باید مقدار متناظر PORT را 1 کنیم.

              همزمان هم نمیتونه یک خط از پورت هم ورودی باشه هم خروجی.
              امیدوارم توضیحم خوب بوده باشه فقط اگه میخوایین خاطرتون جمع بشه میتونید از Wizard استفاده کنید تا متوجه این مقداردهی ها بشوید.
              من کوچیک شمام. عذر می خوام آقای باغمیرانی
              متاسفانه شما هم اشتباه کردید. ورودی و خروجی کردن مربوط به DDRX هستش نه PORTX.
              وقتی DDRX های باشه(یا همون 1) یعنی خروجی و وقتی لاو (یا همون 0) باشه میشه ورودی. وقتی که کد شما رو توی برنامه قرار بدیم میکرو پین رو خروجی میکنه ولی 1 روش قرار نمیده. ولی وقتی مقدار PORTX رو 1 میکنی اون پورت 1 میشه. اگه پورت رو به صورت داخلی ست کنی و مقدار PORTX رو های کنه مقاومت بالاکش(پول-پ) رو پورت قرار میگیره.

              Ok؟

              دیدگاه


                #8
                پاسخ : مشکل با راه اندازی ATMega16A

                نوشته اصلی توسط rozeh
                من کوچیک شمام. عذر می خوام آقای باغمیرانی
                متاسفانه شما هم اشتباه کردید. ورودی و خروجی کردن مربوط به DDRX هستش نه PORTX.
                وقتی DDRX های باشه(یا همون 1) یعنی خروجی و وقتی لاو (یا همون 0) باشه میشه ورودی. وقتی که کد شما رو توی برنامه قرار بدیم میکرو پین رو خروجی میکنه ولی 1 روش قرار نمیده. ولی وقتی مقدار PORTX رو 1 میکنی اون پورت 1 میشه. اگه پورت رو به صورت داخلی ست کنی و مقدار PORTX رو های کنه مقاومت بالاکش(پول-پ) رو پورت قرار میگیره.

                Ok؟
                قوربون شما rozeh عزیز
                واقعا شرمنده فراموش کردم بگم ما از PORT در دو جای مختلف استفاده میکنیم.
                منظور من اون PORT بود که واسه قرار دادن مقاومت P.U هستش.
                دقیقا فرامایشات شما درست هستش.

                دیدگاه

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