اطلاعیه

Collapse
No announcement yet.

مشکل atmega128 با _delay_ms

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

    #16
    پاسخ : مشکل atmega128 با _delay_ms

    سلام به همه
    صلوات
    اگر مشکلت حل نشد بگو تا راه حل های دیگه هم بزاریم
    دیتاشیت 1202 رو داری؟
    اگر کد lcd رو هم بدی که دنبال datasheet بگردم خوبه
    تو بازار به وفور گیرمیاد یا نه؟
    ممنون
    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
    شهید دکتر مصطفی چمران
    اللهم صل علی محمد و ال محمد و عجل فرجهم
    ; C is not for children

    دیدگاه


      #17
      پاسخ : پاسخ : مشکل atmega128 با _delay_ms

      سلام
      شرمنده توجه نکردم :sad: ممنون این pdf رو قبلا گرفته بودم ولی به اون نکته قرمز زیر جدول توجه نکرده بودم .مرسی

      راه انداز nokia 1202 :

      http://www.eca.ir/forum2/index.php?t...2300#msg582300
      فقط تعاریف پرت ها توی مدار من اینه :
      کد:
      // Pins.....
      	#define N11_CS_DDR											DDRB
      	#define N11_CS_PRT											PORTB
      	#define N11_CS_BIT											3
      	//------
      	#define N11_SDA_DDR											DDRB
      	#define N11_SDA_PRT											PORTB
      	#define N11_SDA_BIT											4
      
      	#define N11_SCL_DDR											DDRB
      	#define N11_SCL_PRT											PORTB
      	#define N11_SCL_BIT											5
      	//------
      	#define N11_RST_DDR											DDRB
      	#define N11_RST_PRT											PORTB
      	#define N11_RST_BIT											6
      
      	#define N11_BKL_DDR											DDRB
      	#define N11_BKL_PRT											PORTB
      	#define N11_BKL_BIT											7
      کاملا جواب هم میده تو مدارای دیگه با مگا32


      2 تا مشکل داشتم...دیشب تا 5 صب بیدار بودم همه چی هم رو براه بود...
      اول مشکل پروگرمر
      تو مدارم روی usart0 یه max485 داشتم ...که پایه های pdi , pdo همون rx0 tx0 هستن... بعد از کلی ور رفتن با بردم اون رو که ورداشتم شناخت....حالا این به کنار که چکارا که نکردم...
      این دفعه که بردو چاپ کردم تجربه شد...ولی چرا اینجوری میشه...یعنی دفعه های دیگه نباید rs485 رو از usart0 بگیرم که پین های spi پروگرام بهش وصل میشه ؟
      فک کنم اگه با jtag پروگ کنم دیگه اینجوری نشه . درسته ؟

      مشکل اول که درس شد با این داستانا...دومی :
      برنامه ای که روی mega32 کار میکنه چرا نباید رو 128 کار نکنه ؟پایه های lcd روی پرت b هست...این پرت مشکلی که نداره ؟چرا درست کار نمیکنه :sad:

      دیدگاه


        #18
        پاسخ : مشکل atmega128 با _delay_ms

        برنامه ای که روی mega32 کار میکنه چرا نباید رو 128 کار نکنه ؟پایه های lcd روی پرت b هست...این پرت مشکلی که نداره ؟چرا درست کار نمیکنه
        نوع چیپ را توی پروژه عوض کردی؟ (از مگا32 به مگا128)
        پورت B نکته خاصی نداره؛ ممکنه درست لحیم نشده باشه

        روی پورت B رابط SPI و خروجی های OCR0~2 واقع شده که باید توجه داشته باشی توی برنامه فعالشون نکرده باشی!

        موفق باشید
        امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

        دیدگاه


          #19
          پاسخ : مشکل atmega128 با _delay_ms

          نوشته اصلی توسط Abbas Sarami
          نوع چیپ را توی پروژه عوض کردی؟ (از مگا32 به مگا128)
          پورت B نکته خاصی نداره؛ ممکنه درست لحیم نشده باشه

          روی پورت B رابط SPI و خروجی های OCR0~2 واقع شده که باید توجه داشته باشی توی برنامه فعالشون نکرده باشی!

          موفق باشید
          مهندس کامپایلرم avr studio 6 هست .چیپ مگا 128 رو انتخاب کردم موقع پروژه ساختن . باید تو کد هم چیزی اضافه کنم ؟
          برنامه واسه نشون دادن text درست کار میکنه ... واسه نشون دادن عکس(BMP) چیزای نا مفهوم نشون میده، با اینکه تو اون یکی برد درس نشون میده :angry: :angry: :angry:... پس لحیم کاری درسته
          فقط تو مگا32 من avr/mega32.h اضافه کردم ولی تو برنامه مگا 128 چیزی ننوشتم...چون یبار نوشتم avr/mega128.h ارور داد کامپایلر ....
          اینجارو ینگاه میکنین؟
          http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=7 0524&start=0
          ممکنه میکرو مشکل داشته باشه؟پایها عکس العمل مناسب نداشته باشن؟

          دیدگاه


            #20
            پاسخ : مشکل atmega128 با _delay_ms

            چیپ مگا 128 رو انتخاب کردم موقع پروژه ساختن . باید تو کد هم چیزی اضافه کنم ؟
            خیر ، نیازی نیست
            برنامه واسه نشون دادن text درست کار میکنه ... واسه نشون دادن عکس(BMP) چیزای نا مفهوم نشون میده، با اینکه تو اون یکی برد درس نشون میده :angry: :angry: :angry:... پس لحیم کاری درسته
            بله؛ استدلال شما درسته ؛ این درایوری که شما استفاده میکنید سرعتش برای کار با IO ها زیاد هست و اگه سیم کشی و یا ترک طولانی داشته باشی ممکنه مشکل ساز بشه
            برای تست این حالت که آیا طول خطوط مشکل ساز شده یا نه ،سرعت میکرو را روی 4مگ داخلی(یا کمتر) تنظیم کن وتست کن!
            اینجارو ینگاه میکنین؟
            http://www.avrfreaks.net/index.php?name=PNphpBB2&file=printview&t=7 0524&start=0
            مشکل عجیبیه! ممکنه بقول avrfreaks ی ها بدلیل ESD و یا طرز لیحم کاری اشتباه این پورت آسیب دیده!
            فقط تو مگا32 من avr/mega32.h اضافه کردم ولی تو برنامه مگا 128 چیزی ننوشتم...چون یبار نوشتم avr/mega128.h ارور داد کامپایلر ....
            شما فقط هدر IO را include کن ؛ خود کامپایلر چیپ را انتخاب میکنه
            کد:
            #include <avr/io.h>
            ممکنه میکرو مشکل داشته باشه؟پایها عکس العمل مناسب نداشته باشن؟
            من تاحالا این مشکل را با mega128 نداشتم
            jtag , m103 باید 1 باشند
            و سرعت را بیار پایین و تست کن و نتیجه را اعلام کن

            موفق باشید
            امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

            دیدگاه


              #21
              پاسخ : مشکل atmega128 با _delay_ms

              سلام
              مشکل حل شد...

              یه سوال
              این به چه معنیه ؟
              PROGMEM unsigned char starter []
              فرقش با این چیه ؟
              const unsigned char starter []

              تغییری که دادم تو سورس راه انداز lcd این بود...
              ولی میگم دیگه...تو مگا 32 همون سورس درست کار میکرد
              از همگی ممنون . روزه نمازتونم قبول
              دیگه کم آورده بودما....

              دیدگاه


                #22
                پاسخ : مشکل atmega128 با _delay_ms

                پس مشکل IO نداشتی! عجب سرکارمون گذاشتی مهندس
                پسوند PROGMEM در GCC مثل همون Flash در کدویژن هست
                با نوشتن این پسوند آرایه مستقیماً در flash نوشته میشه و خوانده میشه
                اگه با پسوند const نوشتی ، درسته که آرایه ثابت هست ولی در SRAM لود میشه و بعد استفاده میشه
                شاید کامپایلر اون را به دلیل optimize کردن حذفش میکرده

                ولی میگم دیگه...تو مگا 32 همون سورس درست کار میکرد
                این مربوط به نوع چیپ نیست ، مربوط به optimize کامپایلر هست

                موفق باشید
                امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                دیدگاه


                  #23
                  پاسخ : مشکل atmega128 با _delay_ms

                  نوشته اصلی توسط Abbas Sarami
                  پس مشکل IO نداشتی! عجب سرکارمون گذاشتی مهندس
                  پسوند PROGMEM در GCC مثل همون Flash در کدویژن هست
                  با نوشتن این پسوند آرایه مستقیماً در flash نوشته میشه و خوانده میشه
                  اگه با پسوند const نوشتی ، درسته که آرایه ثابت هست ولی در SRAM لود میشه و بعد استفاده میشه
                  شاید کامپایلر اون را به دلیل optimize کردن حذفش میکرده
                  این مربوط به نوع چیپ نیست ، مربوط به optimize کامپایلر هست

                  موفق باشید
                  سلام شرمنده
                  راستش کمیدونین سر همین چه بلاهایی ک سرم نیومد
                  من اپتیمایزر رو خاموش کردم تو هر دوتا پروژه...
                  یه کار دیگه هم کردم فایل جدیدتر n11.c رو که راجب راه اندازی lcd بود رو کپی کردم که فک کنم فقط تو قسمت پاک کردن lcd یه فرقای کوچیکی داشت...

                  دیدگاه


                    #24
                    پاسخ : مشکل atmega128 با _delay_ms

                    سلام به همه
                    صلوات
                    من هم زمانی که از mega32 به mega128 کوچ کردم به مشکلات زیادی برخوردم .
                    توی تایپیک زیر بیشترشون رو توضیح دادم :
                    http://www.eca.ir/forum2/index.php?topic=95241.0
                    ممنون بابت راهنمایی 1202
                    ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                    شهید دکتر مصطفی چمران
                    اللهم صل علی محمد و ال محمد و عجل فرجهم
                    ; C is not for children

                    دیدگاه


                      #25
                      پاسخ : مشکل atmega128 با _delay_ms

                      سلام به همه
                      یک صلوات
                      دوستان من با Atmel Studio 6.2 کار میکنم اما دستور زیر که شما گفتین رو نمیشناسه؟
                      کد:
                      PROGMEM unsigned char starter []="test";
                      پسوند PROGMEM در GCC مثل همون Flash در کدویژن هست
                      با نوشتن این پسوند آرایه مستقیماً در flash نوشته میشه و خوانده میشه
                      برای من این مورد مهمه.من نمیخوام یک سری از ثابت هام (اکثرشون) از فضای SRAM استفاده کنن اما اطلاع نداشتم قضیه const به این شکلیه که شما گفتین و خیلی تعجب کردم اما زمانی هم که خواستم از PROGMEM استفاده کنم ERROR داد؟
                      شاید کامپایلر اون را به دلیل optimize کردن حذفش میکرده
                      oo: بعید میدونم اینطور باشه.این چیزی که شما گفتین یعنی اینکه Atmel Studio برای بهینه سازی میاد دستکاری در اطلاعات اصلی میکنه و این اعتبار یک نرم افزار رو کاملا زیر سوال میبره
                      تا جایی که من اطلاع دارم بهینه سازی میادیک سری از شیوه های برنامه نویسی مارو تغییرهایی میده که اصل عملکرد برنامه نوشته شده سر جاش میمونه و تغییری نمیکنه فقط اصولی تر میشه اما زمانی که ماگفتیم فلان مقدار رو مخصوصا در فلان حافظه بنویس نرم افزار کاری که ماگفتیم رو انجام میده.
                      اگر غیر از این هست لطفا اطلاع بدین :nerd:
                      یه سوال دیگه دوستان:
                      من یه تابع رو تعریف کردم به قرار زیر:
                      کد:
                      void lcd_data(char ONE_DATA);
                      بعد برای تست مقدار دریافت و ارسال دستور زیر رو نوشتم:
                      کد:
                      lcd_data(255);
                      نتیجه این شد که مقدار 255 رو دریافت کرد و ارسال کردش؟
                      مگه char به تنهایی از -127 تا +127 رو نمیتونه بگیره پس چرا 255 رو هم گرفت؟
                      ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                      شهید دکتر مصطفی چمران
                      اللهم صل علی محمد و ال محمد و عجل فرجهم
                      ; C is not for children

                      دیدگاه


                        #26
                        پاسخ : مشکل atmega128 با _delay_ms

                        دوستان من با Atmel Studio 6.2 کار میکنم اما دستور زیر که شما گفتین رو نمیشناسه؟
                        برای من این مورد مهمه.من نمیخوام یک سری از ثابت هام (اکثرشون) از فضای SRAM استفاده کنن اما اطلاع نداشتم قضیه const به این شکلیه که شما گفتین و خیلی تعجب کردم اما زمانی هم که خواستم از PROGMEM استفاده کنم ERROR داد؟
                        از هدر pgmspace.h استفاده کنید:
                        کد:
                        #include <avr/pgmspace.h>
                        بعید میدونم اینطور باشه.این چیزی که شما گفتین یعنی اینکه Atmel Studio برای بهینه سازی میاد دستکاری در اطلاعات اصلی میکنه و این اعتبار یک نرم افزار رو کاملا زیر سوال میبره
                        اینکه یک آرایه توسط کامپایلر حذف بشه تعجب برانگیز نیست
                        خودم باهاش برخورد کردم ؛ نمیگم همیشه این اتفاق می افته ، ممکنه 1/1000 به این مشکل بر خورد کنی
                        درسته که بهینه ساز شیوه تبدیل به اسمبلی برنامه را تغییر میده ولی اگه optimize را برای size تنظیم کرده باشید کامپایلر دنبال حذف کد میگرده که گریبان متغییر ها رو میگیره و دستور volatile این جاها بدرد میخوره
                        --------------------------------
                        اون مقدار 255 که نوشتی مثل اینه که بنویسی : 0b11111111
                        حالا اگه هنگام خواندن به عنوان signed char بخونی عدد منفی 127 تلقی میشه و اگه unsigned بخونی عدد مثبت 255 میشه
                        پس کامپایلر مقدار باینری را در نظر میگیره مگر موقعی که بخواهی عملیات ریاضی روش انجام بدی که بحثش جدا هست

                        موفق باشید


                        امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                        دیدگاه


                          #27
                          پاسخ : مشکل atmega128 با _delay_ms

                          سلام به همه
                          صلوات
                          به امید اینکه جیباتون پر پول باشه
                          جناب Abbas Sarami از توضیحات شما سپاسگذارم و یه خواهش دیگه دارم :
                          میشه ماهی گیری رو بهم یاد بدین!؟
                          میشه بگید این اطلاعات رو بیشتر از چه منابعی گیر اوردید؟منظورم بیشتر شناخت خود atmel studio هست تا زبان c چون من خیلی به دنبال آموزش Atmel Studio گشتم اما چیز درست و حسابی گیر نیاوردم.
                          با تشکر
                          ای خدا ، من باید از نظر علم از همه برتر باشم، تا مبادا که دشمنان مرا از این راه طعنه زنند. باید به آن سنگدلانی که علم را بهانه کرده و به دیگران فخر میآ*فروشند، ثابت کنم که خاک پای من هم نخواهند شد. باید همه آن تیره دلان مغرور و متکبر را به زانو در آورم، آنگاه خود خاضع ترین و افتاده ترین مرد روی زمین باشم.
                          شهید دکتر مصطفی چمران
                          اللهم صل علی محمد و ال محمد و عجل فرجهم
                          ; C is not for children

                          دیدگاه


                            #28
                            پاسخ : مشکل atmega128 با _delay_ms

                            صلوات
                            [glow=lime,2,300]اللهم صل علی محمد و آل محمد و عجل فرجهم [/glow]
                            من بیشتر اطلاعتم تجربی هست (شاید باورت نشه)
                            من مواقعی بوده که در هفته 2-3 تا پروژه سنگین با avr انجام دادم و هزاران مشکل داشتم که از منابع مختلف اینترنتی حلش کردم
                            از کلاسهای دانشگاه و برخی کتب آبی گرم نمیشه ، فقط برای مقدمات خوبه
                            همیشه دوست داشتم منبع باشم تا از منبع استفاده کنم :mrgreen:

                            در ضمن من با winavr کار میکنم ، با make file نویسیش حال میکنم
                            حالا سوال داشیتد تا جایی که بدونم در خدمتم

                            موفق باشید
                            امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                            دیدگاه


                              #29
                              پاسخ : مشکل atmega128 با _delay_ms

                              دوباره سلام
                              اینکه میکرو slow motion میشه واسه چیه :mrgreen:
                              که گاهی وقت ها با روشن خاموش کردن پاور درست میشه ؟
                              مثلا داره رو نمایشگر کاراکترهارو درس نشون میده...یه بار برنامه و عوض میکنم و دوباره روشنش میکنه میبینم یواش یواش داره برنامه و پیش میبره مثلا نوشته هارو خیلی آهسته رو lcd نشون میده...روشن خاموش میکنم درس میشه :angry:

                              دیدگاه


                                #30
                                پاسخ : مشکل atmega128 با _delay_ms

                                اگه کریستال داری CKOPT را فعال کن (صفر کن)
                                SUT را در بالاترین مقدار قرار بده
                                با این کار ها به بهینه شدن و stable شدن نوسان کریستال کمک می کنید :agree:
                                البته باید از تغذیه مطمئن باشید

                                موفق باشید


                                امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                                دیدگاه

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