اطلاعیه

Collapse
No announcement yet.

atmega128

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

    atmega128

    با سلام خدمت تمامی اساتید گرامی،
    برای یه پروژه تصمیم گرفتم با atmega128 کار کنم. اول همه ی المان ها رو با atmega16 راه اندازی کردم و کد هر المان رو آماده کردم. برد نهایی با atmega128 رو طراحی و آماده کردم ولی حالا هرکاری میکنم کدها کار نمیکنه!!!
    فیوزبیت های کلاک تنظیم هست،
    فیوز بیت مربوط به M103C هم درست تنظیم شده،
    تنها کاری که با atmega128 میتونم انجام بدم، خاموش روشن کردن یه LED هست!!!!
    باچند تا atmega128 هم تست گرفتم،
    لطفا اگه کسی اطلاعات و تجربه ایی توی این زمینه داره راهنمایی کنه،
    از همه پیشاپیش ممنونم.

    #2
    پاسخ : atmega128

    بنظرت با این اطلاعاتی که قرار دادی و سوالی که کردی
    بقیه باید چطوری بهت کمک کنن؟
    هميشه به ياد خدا باش !

    دیدگاه


      #3
      پاسخ : atmega128

      نوشته اصلی توسط quasar
      با سلام خدمت تمامی اساتید گرامی،
      برای یه پروژه تصمیم گرفتم با atmega128 کار کنم. اول همه ی المان ها رو با atmega16 راه اندازی کردم و کد هر المان رو آماده کردم. برد نهایی با atmega128 رو طراحی و آماده کردم ولی حالا هرکاری میکنم کدها کار نمیکنه!!!
      سلام
      مگه میشه کد ها کار نکنه
      من که با مگا 128 خیلی کار کردم اوایل ناشی بودم اون تیک گزینه مگا 103 رو برنمی داشتم کار نمی کرد ولی بعد اون دیگه فکر کنم بیشتر از 10 تا مگا 128 پروگرام کردم الان یه پروژه ای دارم که 70 درصد مگا 128 پره و عین ساعت داره کار می کنه
      یکم بیشتر در مورد کارت توضیح بده شاید اصلا از کدت باشه یا سخت افزار و ...
      برد جوجه کشی:
      مطالعه پست 1 (حتما مطالعه کنید)


      مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

      دانلود

      توجه:
      این برد نیمه صنعتی و خانگی هست...
      برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

      آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

      دیدگاه


        #4
        پاسخ : atmega128


        تصمیم نداشتم زیاد وقت دوستان رو بگیرم و دنبال تفاوت اصلی میگشتم که شاید تا حالا نخونده باشم.... ولی خب حالا که بعد چندروز راه حلی پیدا نشد، خود کد رو که تو پروتئوس شبیه سازی کردم و توی atmega16 جواب میده ولی توی atmega128 جواب نمیده رو براتون میذارم.... لازم به ذکره که توی عمل هم دقیقا همین اتفاق می افته.... توی atmega16 جواب میده ولی توی atmega128 جواب نمیده...... اساتید لطفا اگه کسی میتونه راهنمایی کنه، که خیلی مشکل عجیبی گیر کردم!!!

        کدی که گذاشتم مربوط به سنسور SHT10 هست. هم پروژه و هم شبیه سازی توی پروتئوس رو گذاشتم. لطفا بررسی کنین:
        http://uplod.ir/d3f3kbwvzaru/SHT1x.rar.htm


        دیدگاه


          #5
          پاسخ : atmega128

          چرا کسی کمکی نمیکنه!!!! :cry2: :cry2: :cry2: :cry2: :cry2:

          دیدگاه


            #6
            پاسخ : atmega128

            خیلی عجیبه ...
            توی این دو خط برنامه گیر میکنه ...
            [code=c]
            for (i=0;i<65535;i++) for (j=0;j<65535;j++) if(SHT_DATA_IN==0) break; //wait until sensor has finished the measurement
            if(SHT_DATA_IN) error+=1; // or timeout (~2 sec.) is reached
            [/code]
            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
            معرفی نرم افزار Codewizard PWM
            با من بیشتر آشنا شوید

            دیدگاه


              #7
              پاسخ : atmega128

              نوشته اصلی توسط سامان اسدی
              خیلی عجیبه ...
              توی این دو خط برنامه گیر میکنه ...
              [code=c]
              for (i=0;i<65535;i++) for (j=0;j<65535;j++) if(SHT_DATA_IN==0) break; //wait until sensor has finished the measurement
              if(SHT_DATA_IN) error+=1; // or timeout (~2 sec.) is reached
              [/code]
              این رفتار میکرو مثل اینه که اصلا سنسور داده از میکرو دریافت نمیکنه و درنتیجه پاسخی هم بهش نمیده(علت این که توی اون حلقه گیر میکنه اینه که سنسور جواب میکرو رو نمیده که مثل اینه که اصلا حرفای میکرو بهش نرسیده)..... خب چرا atmega128 اینجوری میکنه!!!!! :surprised:

              چه راه حلی دارین دوستان؟ :cry:

              دیدگاه


                #8
                پاسخ : atmega128

                نوشته اصلی توسط quasar
                این رفتار میکرو مثل اینه که اصلا سنسور داده از میکرو دریافت نمیکنه و درنتیجه پاسخی هم بهش نمیده(علت این که توی اون حلقه گیر میکنه اینه که سنسور جواب میکرو رو نمیده که مثل اینه که اصلا حرفای میکرو بهش نرسیده)..... خب چرا atmega128 اینجوری میکنه!!!!! :surprised:

                چه راه حلی دارین دوستان؟ :cry:
                مگه این سنسور با TWI کار نمیکنه ؟
                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                معرفی نرم افزار Codewizard PWM
                با من بیشتر آشنا شوید

                دیدگاه


                  #9
                  پاسخ : atmega128

                  نوشته اصلی توسط سامان اسدی
                  مگه این سنسور با TWI کار نمیکنه ؟
                  صفحه 5 دیتاشیت:

                  The serial interface of the SHT1x is optimized for sensor readout and effective power consumption. The sensor cannot be addressed by I 2C protocol; however, the sensor can be connected to an I 2C bus without interference with other devices connected to the bus. The controller must switch between the protocols.

                  توی sample code خود کمپانی هم از I2C استفاده یکرده بلکه اومده مثل همین کدی که دیدین خودش این ارتباط رو ساخته! :
                  http://www.sensirion.com/nc/en/produ...chash=a423b84d

                  به هرحال هنوز سوال من میمونه: چرا atmega128 برخلاف atmega16 کار نمیکنه!!!!؟؟؟!!

                  دیدگاه


                    #10
                    پاسخ : atmega128

                    تا جایی که یادمه این میکرو تمام رجیستراش دسترسی بیتی نداشتن و باید با کل مقدار رجیستر کارامونو میکردیم.
                    شما از دسترسی بیتی استفاده کردی؟
                    اگه آره، کدتونو به این صورت عوض کنید که مقدار کل رجیستر رو بخونه (به جای یک بیت!) بعد تو مقدار خونده شده وضعیت بیت رو چک کنید
                    مثلا:
                    کد:
                    DDRA=0x00
                    char a = PINA
                    a &= 0x01
                    این کد توی متغییر a وضعیت پین 0 پورت A رو میریزه
                    اینو تست کنید ببینید جواب میده یا نه
                    ;()((void (*)(void))0x0000))

                    دیدگاه


                      #11
                      پاسخ : atmega128

                      نوشته اصلی توسط SAJAD-G
                      تا جایی که یادمه این میکرو تمام رجیستراش دسترسی بیتی نداشتن و باید با کل مقدار رجیستر کارامونو میکردیم.
                      شما از دسترسی بیتی استفاده کردی؟
                      اگه آره، کدتونو به این صورت عوض کنید که مقدار کل رجیستر رو بخونه (به جای یک بیت!) بعد تو مقدار خونده شده وضعیت بیت رو چک کنید
                      مثلا:
                      کد:
                      DDRA=0x00
                      char a = PINA
                      a &= 0x01
                      این کد توی متغییر a وضعیت پین 0 پورت A رو میریزه
                      اینو تست کنید ببینید جواب میده یا نه
                      حرف شما درسته ولی نه برای این پورتها ...
                      [code=c]#include <mega128.h>
                      #include <delay.h>

                      // Declare your global variables here

                      void main(void)
                      {
                      DDRA=255;
                      DDRB=255;
                      DDRC=255;
                      DDRD=255;
                      DDRE=255;
                      DDRF=255;
                      DDRG=255;
                      while (1)
                      {
                      PORTA.0=0;
                      PORTB.0=0;
                      PORTC.0=0;
                      PORTD.0=0;
                      PORTE.0=0;
                      delay_ms(100);
                      PORTA.0=1;
                      PORTB.0=1;
                      PORTC.0=1;
                      PORTD.0=1;
                      PORTE.0=1;
                      delay_ms(100);
                      }
                      }[/code]
                      این کد رو بزنید کار میده ... یعنی اینکه برای پورتهای A تا E به صورت بیتی جواب میده ولی برای پورتهای F و G باید حتما از کتابخانه iobits بکار بگیری تا بتونید به صورت بیتی کار کنه ...
                      پس نتیجه میگیریم مشکل اینجا نیست ...
                      [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                      معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                      معرفی نرم افزار Codewizard PWM
                      با من بیشتر آشنا شوید

                      دیدگاه


                        #12
                        پاسخ : atmega128

                        نوشته اصلی توسط SAJAD-G
                        تا جایی که یادمه این میکرو تمام رجیستراش دسترسی بیتی نداشتن و باید با کل مقدار رجیستر کارامونو میکردیم.
                        شما از دسترسی بیتی استفاده کردی؟
                        اگه آره، کدتونو به این صورت عوض کنید که مقدار کل رجیستر رو بخونه (به جای یک بیت!) بعد تو مقدار خونده شده وضعیت بیت رو چک کنید
                        مثلا:
                        کد:
                        DDRA=0x00
                        char a = PINA
                        a &= 0x01
                        این کد توی متغییر a وضعیت پین 0 پورت A رو میریزه
                        اینو تست کنید ببینید جواب میده یا نه
                        یه تست از فرضی که گفتین گرفتم.... پورت F و G این جوری هست که نمیشه بیتی باهاش کارکرد ولی با بقیه پورت ها مشکلی نداشت و میشه....

                        دیدگاه


                          #13
                          پاسخ : پاسخ : atmega128

                          نوشته اصلی توسط quasar
                          صفحه 5 دیتاشیت:

                          The serial interface of the SHT1x is optimized for sensor readout and effective power consumption. The sensor cannot be addressed by I 2C protocol; however, the sensor can be connected to an I 2C bus without interference with other devices connected to the bus. The controller must switch between the protocols.

                          توی sample code خود کمپانی هم از I2C استفاده یکرده بلکه اومده مثل همین کدی که دیدین خودش این ارتباط رو ساخته! :
                          http://www.sensirion.com/nc/en/produ...chash=a423b84d

                          به هرحال هنوز سوال من میمونه: چرا atmega128 برخلاف atmega16 کار نمیکنه!!!!؟؟؟!!
                          چرا از کتابخانه i2c استفاده نکرده ؟؟؟ :angry: :angry: :angry:
                          چرا اینقدر برنامه رو پیچ در پیچش کرده ؟؟؟
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #14
                            پاسخ : پاسخ : atmega128

                            نوشته اصلی توسط سامان اسدی
                            چرا از کتابخانه i2c استفاده نکرده ؟؟؟ :angry: :angry: :angry:
                            چرا اینقدر برنامه رو پیچ در پیچش کرده ؟؟؟
                            همون طوری که خدمتتون عرض کردم خود کمپانی گفته نمیشه به باس I2C وصل کرد. حالا آیا شما دلیلی میبینین که کد توی atmega16 جواب میده ولی توی atmega128 جواب نمیده؟؟؟....

                            دیدگاه


                              #15
                              پاسخ : پاسخ : atmega128

                              نوشته اصلی توسط quasar
                              همون طوری که خدمتتون عرض کردم خود کمپانی گفته نمیشه به باس I2C وصل کرد. حالا آیا شما دلیلی میبینین که کد توی atmega16 جواب میده ولی توی atmega128 جواب نمیده؟؟؟....
                              اقا من ی تستی زدم خودم توش موندم برنامه مگا 32 روی مگا128 اجرا شد میتونی
                              یتست بزنید oo: oo: oo: oo: oo: oo:

                              دیدگاه

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