اطلاعیه

Collapse
No announcement yet.

مشکل با اجرای برنامه روی atmega64

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

    مشکل با اجرای برنامه روی atmega64

    سلام دوستان
    من دفعه اولمه که با mega64 کار می کنم و یه برنامه خیلی ساده که پورت های خروجی را صفر و یک می کنه برای atmega64 نوشتم که برنامه تو پروتئوس کار می کنه، روی میکرو هم پروگرام می شه ولی در عمل پورت ها هیچ عکس العملی نشان نمیدند.
    تمام لاک بیت ها را هم 1 (غیرفعال) کردم و فیوزبیت M103C را هم 1 (غیرفعال) کردم ولی بازهم کار نمی کنه.
    میکرو را با فرکانس 1 مگ داخلی، 8 مگ داخلی و 16 مگ خارجی امتحان کردم ولی هیچ کدام جواب نمیده.
    منتظر پاسخ فوری شما عزیزان هستم

    #2
    پاسخ : مشکل با اجرای برنامه روی atmega64

    این میکرو نکته مهمش همون فیوز بیت M103C هست. مطمئن هستین غیرفعال کردین؟

    دیدگاه


      #3
      پاسخ : مشکل با اجرای برنامه روی atmega64

      بله با دوتا پروگرامر مختلف فیوزبیت ها را خوندم M103C با هر دوتا 1 بود

      چطوری دیگه میشه این میکرو را تست کرد؟

      دیدگاه


        #4
        پاسخ : مشکل با اجرای برنامه روی atmega64

        باید ببینی اون پورتی که برای خروجی کانفیگ کردی آیا در دیتا شیت میکرو نکته خاصی در موردش ننوشته ، چون من هم قبلا دقیقا همین کار رو که کرده بودم با تعویض پورت برای خروجی مشکلم حل شد
        خداوند بی نهایت است اما به قدر نیاز تو فرود می آید ، به قدر آرزوی تو گسترده می شود و به قدر ایمان تو کارگشاست.
        [hr]

        دیدگاه


          #5
          پاسخ : مشکل با اجرای برنامه روی atmega64

          برنامه رو بزار چک کنیم.
          میدونی که تو مگا 64 از پورت C فقط به عنوان خروجی و از پورت F هم فقط به عنوان ورودی میشه استفاده کرد.
          خیلی هم خودتو درگیر پروتئوس نکن، سعس کن بیشتر عملی تست کنی تا با مشکلاتی که بعدا برخورد میکنی بتونی درست برخورد کنی.

          دیدگاه


            #6
            پاسخ : مشکل با اجرای برنامه روی atmega64

            متن برنامم به صورت زیر است چیز خاصی نداره:


            // Standard Input/Output functions
            #include <stdio.h>
            #include <mega64.h>
            #include <delay.h>


            // Declare your global variables here

            void main(void)
            {
            // Declare your local variables here
            char str[6];
            DDRA=0xff;
            DDRB=0xff;
            DDRC=0xff;
            DDRD=0xff;


            // USART0 initialization
            // Communication Parameters: 8 Data, 1 Stop, No Parity
            // USART0 Receiver: On
            // USART0 Transmitter: On
            // USART0 Mode: Asynchronous
            // USART0 Baud Rate: 9600
            UCSR0A=0x00;
            UCSR0B=0x18;
            UCSR0C=0x06;
            UBRR0H=0x00;
            UBRR0L=0x67;

            putsf(" Test "

            while (1)
            {
            // Place your code here
            PORTA=~PORTA;
            PORTB=~PORTB;
            PORTC=~PORTC;
            PORTD=~PORTD;
            delay_ms(500);
            }
            }

            دیدگاه


              #7
              پاسخ : مشکل با اجرای برنامه روی atmega64

              کسی نمی دونه مشکل از کجا ممکنه باشه تا تستش کنم. :angry: :angry:
              اتصالات مدار را هم چک کردم مشکلی نداشت
              فقط پین PEN را رها گذاشتم و کاری باهاش ندارم مشکلی نداره؟ در حالت کار عادی مدار این پین باید رها باشه دیگه؟ درست می گم؟

              دیدگاه


                #8
                پاسخ : مشکل با اجرای برنامه روی atmega64

                PEN رو کلا ولش کن.
                کد:
                [left]
                // Standard Input/Output functions
                #include <stdio.h>
                #include <mega64.h>
                #include <delay.h>
                
                
                // Declare your global variables here
                
                void main(void)
                {
                // Declare your local variables here
                char str[6];
                DDRA=0xff;
                DDRB=0xff;
                DDRC=0xff;
                DDRD=0xff;
                
                while (1)
                   {
                   // Place your code here
                   PORTA=0xFF;
                   PORTB=0xFF;
                   PORTC=0xFF;
                   PORTD=0xFF;
                   delay_ms(500);
                PORTA=0x00;
                   PORTB=0x00;
                   PORTC=0x00;
                   PORTD=0x00;
                   delay_ms(500);
                   }
                }
                [/left]
                این کد رو تست کن.

                دیدگاه


                  #9
                  پاسخ : مشکل با اجرای برنامه روی atmega64

                  ممنون
                  نه با این برنامه هم فرقی نکرد
                  احساس می کنم اصلا میکرو راه اندازی نشده و انگار تو ریست مونده
                  هرچی هم دستی ریستش می کنم (با پایه ریست) فرقی نمی کنه

                  دیدگاه


                    #10
                    پاسخ : مشکل با اجرای برنامه روی atmega64

                    وقتی میکرو پروگرام می شه یعنی سالمه دیگه؟
                    ممکنه میکروش مشکل داشته باشد؟

                    دیدگاه


                      #11
                      پاسخ : مشکل با اجرای برنامه روی atmega64

                      نوشته اصلی توسط امیر . م
                      برنامه رو بزار چک کنیم.
                      میدونی که تو مگا 64 از پورت C فقط به عنوان خروجی و از پورت F هم فقط به عنوان ورودی میشه استفاده کرد.
                      خیلی هم خودتو درگیر پروتئوس نکن، سعس کن بیشتر عملی تست کنی تا با مشکلاتی که بعدا برخورد میکنی بتونی درست برخورد کنی.
                      البته این گفته شما به نظرم درست نیست. به دیتاشیت اگه مراجعه کنید هر دو تا پورت رو نوشته bi-directional I/O یعنی هم ورودی و هم خروجی میشه تعریف کرد.

                      نوشته اصلی توسط mmselect
                      وقتی میکرو پروگرام می شه یعنی سالمه دیگه؟
                      ممکنه میکروش مشکل داشته باشد؟
                      نه لزوما دوست عزیز. یعنی ممکنه میکرو پروگرام بشه ولی بخشی از میکرو خراب باشه. مثلا یک پورت میکرو آسیب دیده باشه. به نظرم شما بیا اول یک پین از یکی از پورت ها رو صفر و یک کن. یک led هم به اون پین وصل کن تا بیبینی روش و خاموش میشه یانه. بعد بیا اون پورت رو صفر و یک کن.
                      اگه نشد ، پس میتونی مطمئن بشی که میکروت مشکل داره. ولی بعید میدونم که تمام پورتهای میکرو آسیب دیده باشه مگه اینکه اتصالی رخ داده باشه

                      دیدگاه


                        #12
                        پاسخ : مشکل با اجرای برنامه روی atmega64

                        بله عذر میخوام. ظاهرا تو مود M103 این وضعیت حاکم هست.
                        شما پایه ریست رو چجوری وصل کردی؟ میشه مدارشو بگی چیکار کردی؟

                        دیدگاه


                          #13
                          پاسخ : مشکل با اجرای برنامه روی atmega64

                          پایه ریست را با یک مقاومت 10 کیلو به 5 ولت وصل کرده ام
                          :applause: :applause: :applause:
                          درست شد وقتی به پورت به صورت بیتی فرمان دادم راه افتاد
                          الآن اگه مثل قبل دوباره کل پورت را صفر و یک کنم مدار کار می کند :eek: :eek: :eek:
                          نمی دونم یه دفعه چه اتفاقی براش افتاد که میکرو بیدار شد..

                          ممنون از همگی :job: :job:

                          دیدگاه

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