اطلاعیه

Collapse
No announcement yet.

***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

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

    ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

    سلام دوستان من برای انجام پروژه ای که دارم نیاز به یک زمان بندی دقیق دارم بخاطره همین از کریستال 16 مگاهرتز استفاده کردم اما برعکس اون چیزی که انتظار داشتم میکرو خیلی خیلی کند شده مثلا دستور wait 2 نزدیک به 40 ثانیه طول میکشه برنامه با بسکام نوشته شده و فیوزبیت های کلاک همش 1 گذاشتم.
    واقعا کارم گیر کرده خیلی خیلی ممنون میشم اگه دوستان کمک کنن

    #2
    پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

    سلام منم این مشکلو داشتم اخرشم نتونستم بفهمم مشکل از کجاس فک کنم کامپایلر بسکام مشکل داره دیگه باید بریم سراغ زبان سی اگه میتونی برنامتونو با سی بنویسید ببینید مشکل برطرف میشه یا نه اگه از حلقه های تو در تو استفاده میکنید حلقه هارو کم کنید من مشکلم اینجوری حل شد برنامتون چیه؟

    دیدگاه


      #3
      پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

      مدار راه اندازی سنسور dht11 است حلقه های تو در تو که ندارم فک نکنم مشکل با بسکام باشه جون فیوزبیت ها رو با بسکام تنظیم نکردم

      دیدگاه


        #4
        پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

        فیوزبیت ها رو با نرم افزار progisp تنظیم کن.
        www.gam-co.blogsky.com

        دیدگاه


          #5
          پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

          یه چیزه خییییییلی عجیب من دیدم امروز واقعا گیج شدم :angry:
          وقتی توی برنامه ای که نوشتم مقدار کریستال رو بیشتر میکنم تاخیر زمانی بیشتر میشه(چه با استفاده از کریستال خارجی چه با استفاده از نوسان ساز داخلی) یعنی مثلا شما اگه کریستال رو 1 مگ بزارم دستور wait 2 حدوده 4 ثانیه طول میکشه اما اگه کریستال 2 مگ تنظیم کنم حدوده 8 ثانیه طول میکشه و این روند ادامه دارد :eek: :eek: :eek: تا مثلا اگه کریستال 16 مگ بزارم حدوده 30-40 ثانیه طول میکشه
          از پروگرمر هاتل و نرم افزار خودش برای تنظیم فیوزبیت ها استفاده میکنم.
          توی مدار تغذیه هم خازن و هم سلف گذاشتم فک نکنم مدار از نظر تغذیه مشکل داشته باشه
          حالا بنظرتون میتونه مشکل از پروگرامر باشه؟ :cry:
          توی این چند روز هر بلایی بگید سره این مدار آوردم ولی واقعا دیگه نمیدونم چیکار کنم خیلی ممنون میشم اگه دوستان کمک کنن

          دیدگاه


            #6
            پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

            سلام...من هم از این مشکل ها داشتم....علت اصلیش بی دقتی یا فراموشی هست که یه جای کار میلنگه.در واقع یجای کارو اشتباه رفتم...
            لطفا تنظیم فیوزبیت ها رو دقیقا بفرمایید با نوع میکروتون.....

            دیدگاه


              #7
              پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

              نوشته اصلی توسط amin tal
              سلام...من هم از این مشکل ها داشتم....علت اصلیش بی دقتی یا فراموشی هست که یه جای کار میلنگه.در واقع یجای کارو اشتباه رفتم...
              لطفا تنظیم فیوزبیت ها رو دقیقا بفرمایید با نوع میکروتون.....
              اول که ممنون از پاسختون.فیوز بیت ها رو مثلا واسه کریستال 16 مگ 1111 میزارم یا واسه 8 مگ داخلی 0100 میزارم و ...
              میکرو هم atmega8 استفاده کردم
              در ضمن عید همگی هم مبارک

              دیدگاه


                #8
                پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                نوشته اصلی توسط Masoud0711
                اول که ممنون از پاسختون.فیوز بیت ها رو مثلا واسه کریستال 16 مگ 1111 میزارم یا واسه 8 مگ داخلی 0100 میزارم و ...
                میکرو هم atmega8 استفاده کردم
                در ضمن عید همگی هم مبارک
                عید شما هم مبارک باشه....
                این دو فیوز بیت که درسته.مطمئنید مشکل از میکرو نیست؟؟؟ایای میکرو دیگه رو هم امتحان کردید؟
                دو فیوز بیت sut رو چطور برنامه ریزی کردید؟
                از یه مدار تغذیه ساده و بدون سلف استفاده کنید...خازن های تغذیه رو هم چک کنید...مقدارشون رو هم که میدونم درست گذاشتید...
                فیوزبیت ckopt رو هم برنامه ریزی کردید دیگه؟دقت کنید که میکروتون پسوند Lهم نداشته باشه
                اینا چیزایی بود که من به ذهنم رسید تا خدمتتون عرض کنم و امیدوارم مشکلتون حل بشه

                دیدگاه


                  #9
                  پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                  .

                  دیدگاه


                    #10
                    پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                    اولا شما باید توی $srystall دقیقا همون فرکانس کلاک میکرو رو وارد کنی یعنی اینکه اگه اسیلاتور داخلی استفاده کردی فرکانس اون و اگه کریستال خارجی گذاشتی و فیوز بیتا رو برای اون تنظیم کردی فرکانس کریستالتو بذاری .
                    در غیر اینصورت تمام دستورات wait که تو برنامه گذاشتی درست کار نمیکنه.دلیلشم مشخصه. چون کامپایلر میاد بر اساس همین مقداری که شما برای $srystall مشخص کردی و بر اساس مقدار wait یک حلقه درست میکنه که دستور nop به تعداد دفعات مورد نیاز تکرار بشه تا زمان انتظار مورد نظر شما سپری بشه بعد از حلقه خارج میشه. مثلا اگه بنویسی waitus 10 و فرکانش کلاکت 1 مگ باشه هر دستور nop به میزان یک کلاک یعنی یک میکرو ثانیه زمان میبره پس کامپایلر دستور شما رو به یک حلقه تبدیل میکنه که توش nop ده بار اجرا بشه.

                    نکته دوم: برنامتو بزار کنار. دستور کریستالو با مقدار درست بنویس بعد یک حلقه بصورت زیر بنویس do waitus 10 toggle portb.0 loop پایه b.0 رو هم خروجی تعریف کن.بعد تو اسکوپ خروجی پین بی صفر رو نیگا کن اگه 10 میکرو ثانیه توالی پالس هات نبود بعد بیا بگو مشکل از کجایه تا بت بگم.

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

                    دیدگاه


                      #11
                      پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                      نوشته اصلی توسط amin tal
                      عید شما هم مبارک باشه....
                      این دو فیوز بیت که درسته.مطمئنید مشکل از میکرو نیست؟؟؟ایای میکرو دیگه رو هم امتحان کردید؟
                      دو فیوز بیت sut رو چطور برنامه ریزی کردید؟
                      از یه مدار تغذیه ساده و بدون سلف استفاده کنید...خازن های تغذیه رو هم چک کنید...مقدارشون رو هم که میدونم درست گذاشتید...
                      فیوزبیت ckopt رو هم برنامه ریزی کردید دیگه؟دقت کنید که میکروتون پسوند Lهم نداشته باشه
                      اینا چیزایی بود که من به ذهنم رسید تا خدمتتون عرض کنم و امیدوارم مشکلتون حل بشه
                      sut رو 10 گذاشتم با دو تا میکرو هم امتحان کردم از همه مداری هم واسه تغذیش استفاده کردم نشد که نشد احتمال میدم مشکل از پروگرامر باشه چون چیزه دیگه ای به ذهنم نمیرسه ولی متاسفانه پروگرامر دیگه ای ندارم فعلا همه جا هم تعطیله ایشالا با یه پروگرامر دیگه امتحان میکنم ببینم چی میشه

                      دیدگاه


                        #12
                        پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                        نوشته اصلی توسط hamedhamidi
                        اولا شما باید توی $srystall دقیقا همون فرکانس کلاک میکرو رو وارد کنی یعنی اینکه اگه اسیلاتور داخلی استفاده کردی فرکانس اون و اگه کریستال خارجی گذاشتی و فیوز بیتا رو برای اون تنظیم کردی فرکانس کریستالتو بذاری .
                        در غیر اینصورت تمام دستورات wait که تو برنامه گذاشتی درست کار نمیکنه.دلیلشم مشخصه. چون کامپایلر میاد بر اساس همین مقداری که شما برای $srystall مشخص کردی و بر اساس مقدار wait یک حلقه درست میکنه که دستور nop به تعداد دفعات مورد نیاز تکرار بشه تا زمان انتظار مورد نظر شما سپری بشه بعد از حلقه خارج میشه. مثلا اگه بنویسی waitus 10 و فرکانش کلاکت 1 مگ باشه هر دستور nop به میزان یک کلاک یعنی یک میکرو ثانیه زمان میبره پس کامپایلر دستور شما رو به یک حلقه تبدیل میکنه که توش nop ده بار اجرا بشه.

                        نکته دوم: برنامتو بزار کنار. دستور کریستالو با مقدار درست بنویس بعد یک حلقه بصورت زیر بنویس do waitus 10 toggle portb.0 loop پایه b.0 رو هم خروجی تعریف کن.بعد تو اسکوپ خروجی پین بی صفر رو نیگا کن اگه 10 میکرو ثانیه توالی پالس هات نبود بعد بیا بگو مشکل از کجایه تا بت بگم.

                        بار اخرتم باشه میای میگی بسکام مشکل داره و از این حرفا
                        موفق باشی
                        همه این کارایی که میگید رو انجام دادم وقتی اون مقدار کریستال رو تغییر میدم دقیقا جواب عکس میگرم خب من یه برنامه ساده نوشتم که یه ال ای دی هر 2 ثانیه چشمک بزنه وقتی توی بسکام کریستال رو 1 مگ میزارم حدوده 4 ثانیه طول میکشه ولی وقتی کریستال رو 8 مگ تنظیم میکنم این wait2 حدوده 30 ثانیه طول میکشه
                        حامد خان من هیچ وقت به جناب بسکام توهین نکردم خودم یکی از طرفداراشم

                        دیدگاه


                          #13
                          پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                          عزیزجان مقدار کریستال با تغییر crystall=x تغییر نمیکنه
                          برای تغییر کلاک اگه بخوای از اسیلاتور داخلی استفاده کنی باید فیوزبیت ها رو تغییر بدی و اگر از کریستال خارجی استفاده میکنی باید فیوز بیتهای کلاک رو روی 1111 ست کنی و گریستال خارجی بذاری.اون دستور فقط و فقط به کامپایلر میگه که شما چه کلاکی رو برای میکروت ست کردی.همین و بس. که کامپایلر بفهمه وقتی دستور wait استفاده میکنی چند کلاک صبر کنه.امیدوارم متوجه شده باشی.بار دوم بود که توضیح دادم.

                          دیدگاه


                            #14
                            پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                            نوشته اصلی توسط hamedhamidi
                            عزیزجان مقدار کریستال با تغییر crystall=x تغییر نمیکنه
                            برای تغییر کلاک اگه بخوای از اسیلاتور داخلی استفاده کنی باید فیوزبیت ها رو تغییر بدی و اگر از کریستال خارجی استفاده میکنی باید فیوز بیتهای کلاک رو روی 1111 ست کنی و گریستال خارجی بذاری.اون دستور فقط و فقط به کامپایلر میگه که شما چه کلاکی رو برای میکروت ست کردی.همین و بس. که کامپایلر بفهمه وقتی دستور wait استفاده میکنی چند کلاک صبر کنه.امیدوارم متوجه شده باشی.بار دوم بود که توضیح دادم.
                            حامد خان دیگه اینقد هم ابتدایی نیستم فیوز بیت ها رو هم تنظیم کردم

                            دیدگاه


                              #15
                              پاسخ : ***فوری ***فوری مشکل با کریستال 16 مگاهرتز و atmega8

                              نوشته اصلی توسط Masoud0711
                              همه این کارایی که میگید رو انجام دادم وقتی اون مقدار کریستال رو تغییر میدم دقیقا جواب عکس میگرم خب من یه برنامه ساده نوشتم که یه ال ای دی هر 2 ثانیه چشمک بزنه وقتی توی بسکام کریستال رو 1 مگ میزارم حدوده 4 ثانیه طول میکشه ولی وقتی کریستال رو 8 مگ تنظیم میکنم این wait2 حدوده 30 ثانیه طول میکشه
                              حامد خان من هیچ وقت به جناب بسکام توهین نکردم خودم یکی از طرفداراشم
                              همین چیزایی که نوشتی یعنی برنامه درسته و مقدار کلاکت(اسیلاتور داخلی یا خارجی) با اون چیزی که تو برنامه زدی یکی نیس. پس صد در صد فیوز بیتات درست تنظیم نشده .با میکرو دیگه هم تست کردی؟مثلا مگا 16؟

                              دیدگاه

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