اطلاعیه

Collapse
No announcement yet.

انتخاب فرکانس و prescale برای 12 سگمنت

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

    #16
    پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

    با سلام
    اقا شما اگه فرکانس میکرو را به 8 تغییر بدی فک کنم مشکل حل بشه
    دوربین مدار بسته و دزد گیر و رفع مشکلات
    بانک اطلاعاتی سنسورها
    ساخت رقص نور برای شیشه سکوریت مغازه ها
    تعمیر لوازم خانگی را اینجا مطرح کنید
    [move][b] موفقیت بر روی ستون های شکست شکل می گیرد.

    دیدگاه


      #17
      پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

      داداش حمید تغییر دادم هر فرکانسی که بگی اما بهترین حالت همین هست که اول پست گفتم یعنی 1مگا هرتز و prescale=8 یعنی هر 2میلی ثانیه رفرش میشه ایراد نداره با این زمان ؟چون شنیدم تا 5میلی ثانیه هم میشه
      علت چیه وقتی تعداد سگمنت ها زیاد میشه تو رفرش تغییر ایجاد میشه؟مگه هر 1 یا 2 میلی ثانیه اطلاعات واسه 1 سگمنت ارسال نمیشه؟خب حالا وقتی 6تارو کردم 12تا چرا باید انقد تغییر بکنه؟راستی نور سگمنت ها وقتی ثانیه و دقیقه بودند پرنور تر بود فک کنم اما تعداد سگمنت ها زیاد شد افت کرد یکم
      میشه تقویتشون کرد؟راه حلش چیه
      در روزگاری که لبخند ادم ها بخاطر شکست توست برخیز تا بگیرند.........

      دیدگاه


        #18
        پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

        با سلام

        دوست عزیر. مشکل سایه وقتی ایجاد میشه که الگوریتم روشن کردن رقمها درست نباشه. برای پر نور تر شدن میتونین مقدار مقاومت هر سگمنت رو کاهش بدین. البته اینکار در صورتی درسته که تایمینگتون درست باشه. چشمک هم بر اثر پائین بودن رفرش ریت ایجاد میشه.

        اما سایه. سایه وقتی ایجاد میشه که روشن کردن دو رقم توی یه زمان خیلی کوتاه بطور همزمان انجام بشه. بنا بر این پیش از روشن کردن هر رقم، حتما رقم قبلی رو خاموش کنین.

        مثلا ابتدا دیتای رقم اول رو رو باس بذارین. بعد آدرس ( پایه مشترکش رو ) فعال کنین. بعد چند میلی ثانیه تاخیر بدین. بعد آدرس و دیتا رو صفر کنین و این حرکت رو برای همه 12 رقم تکرار کنین. کل زمان اجرای این سابروتین میشه یه خورده بیشتر از 12 ضربدر زمان تاخیری که دادین.

        حالا زمان تاخیر رو طوری محاسبه کنین که در هر ثانیه بشه حد اقل 30 بار این ساب رو اجرا کرد. مثلا با تاخیر 2 میلی ثانیه زمان کل ساب میشه حدود 25 میلی ثانیه. حالا یه تایمر رو طوری تنظیم کنین که هر 30 میلی ثانیه یه وقفه بده و این ساب رو بذارین تو سرویس وقفه. خوندن کلید ها و بقیه کارها رو هم بذارین تو لوپ اصلی برنامه. با این روش مشکلی پیدا نخواهید کرد.

        بعد از هربار اجرای وقفه، میکرو 5 میلی ثانیه هم فرصت داره تا به کارهای دیگه برسه. اگه با تاخیر 1 میلی ثانیه کار کنین، این زمان میشه بیشتر از 15 میلی ثانیه، و یه خورده شدت روشنایی سگمنتها کم میشه که اونو با کاهش مقاومتها میشه جبران کرد. ولی اگه میکرو با همون 5 میلی ثانیه میتونه به کارهاش برسه، بهتره از همون 2 میلی ثانیه استفاده کنین.
        کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

        دیدگاه


          #19
          پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

          نوشته اصلی توسط نو رسیده
          با سلام

          دوست عزیر. مشکل سایه وقتی ایجاد میشه که الگوریتم روشن کردن رقمها درست نباشه. برای پر نور تر شدن میتونین مقدار مقاومت هر سگمنت رو کاهش بدین. البته اینکار در صورتی درسته که تایمینگتون درست باشه. چشمک هم بر اثر پائین بودن رفرش ریت ایجاد میشه.

          اما سایه. سایه وقتی ایجاد میشه که روشن کردن دو رقم توی یه زمان خیلی کوتاه بطور همزمان انجام بشه. بنا بر این پیش از روشن کردن هر رقم، حتما رقم قبلی رو خاموش کنین.

          مثلا ابتدا دیتای رقم اول رو رو باس بذارین. بعد آدرس ( پایه مشترکش رو ) فعال کنین. بعد چند میلی ثانیه تاخیر بدین. بعد آدرس و دیتا رو صفر کنین و این حرکت رو برای همه 12 رقم تکرار کنین. کل زمان اجرای این سابروتین میشه یه خورده بیشتر از 12 ضربدر زمان تاخیری که دادین.

          حالا زمان تاخیر رو طوری محاسبه کنین که در هر ثانیه بشه حد اقل 30 بار این ساب رو اجرا کرد. مثلا با تاخیر 2 میلی ثانیه زمان کل ساب میشه حدود 25 میلی ثانیه. حالا یه تایمر رو طوری تنظیم کنین که هر 30 میلی ثانیه یه وقفه بده و این ساب رو بذارین تو سرویس وقفه. خوندن کلید ها و بقیه کارها رو هم بذارین تو لوپ اصلی برنامه. با این روش مشکلی پیدا نخواهید کرد.

          بعد از هربار اجرای وقفه، میکرو 5 میلی ثانیه هم فرصت داره تا به کارهای دیگه برسه. اگه با تاخیر 1 میلی ثانیه کار کنین، این زمان میشه بیشتر از 15 میلی ثانیه، و یه خورده شدت روشنایی سگمنتها کم میشه که اونو با کاهش مقاومتها میشه جبران کرد. ولی اگه میکرو با همون 5 میلی ثانیه میتونه به کارهاش برسه، بهتره از همون 2 میلی ثانیه استفاده کنین.

          سلام دوست عزیز
          من الان فرکانسم رو 1مگا و پری اسکیل رو 8 هست که میشه تقریبا 2میلی ثانیه، 1بار سر ریز میشه پس واسه 12تا سگمنت میشه 24 میلی طبق گفته شما
          خب الان چطوری تنظیم کنم که 30 میلی ثانیه بشه؟باید چطور تغییر بدم؟
          راستی من مقاومت نذاشتم چون سگمنت ها کوچیکه فک کنم میکرو ازپسش بر بیاد و تو فیلم هم که اگه ببینید درست کار میکنه

          در روزگاری که لبخند ادم ها بخاطر شکست توست برخیز تا بگیرند.........

          دیدگاه


            #20
            پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

            فیلما رو دیدم.

            متاسفانه تو کد نویسی نمیتونم کمک کنم چون AVR کار نمیکنم. اون لرزش به سرعت رفرش مربوط میشه. حالا به 6 رقم هم لرزش دارین و این اگه بشه 12 رقم فکر کنم خیلی زیاد بشه. قطعا محاسبات فرکانستون درست نیست. چون تعداد رقمهاتون زیاده باید سعی کنین برنامه رو اپتیمم بنویسین و تاخیرهای پرت رو تا حد امکان کم کنین.

            حتی با فرض 12 رقم، و تاخیر 24 میلی ثانیه، یعنی شما باید 40 بار در ثانیه رفرش داشته باشین، ولی اینی که توی فیلمه رو میشه حتی با چشم شمردش. فرکانس و پری اسکیل رو جداگانه تغییر بدین و نتایج رو تست کنین. هر چی فرکانس رفرش بالاتر باشه تصور واضحتری ایجاد میشه.
            کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

            دیدگاه


              #21
              پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

              نوشته اصلی توسط نو رسیده
              فیلما رو دیدم.

              متاسفانه تو کد نویسی نمیتونم کمک کنم چون AVR کار نمیکنم. اون لرزش به سرعت رفرش مربوط میشه. حالا به 6 رقم هم لرزش دارین و این اگه بشه 12 رقم فکر کنم خیلی زیاد بشه. قطعا محاسبات فرکانستون درست نیست. چون تعداد رقمهاتون زیاده باید سعی کنین برنامه رو اپتیمم بنویسین و تاخیرهای پرت رو تا حد امکان کم کنین.

              حتی با فرض 12 رقم، و تاخیر 24 میلی ثانیه، یعنی شما باید 40 بار در ثانیه رفرش داشته باشین، ولی اینی که توی فیلمه رو میشه حتی با چشم شمردش. فرکانس و پری اسکیل رو جداگانه تغییر بدین و نتایج رو تست کنین. هر چی فرکانس رفرش بالاتر باشه تصور واضحتری ایجاد میشه.
              نه نه اصلا ........اون فیلم که دقیقه و ثانیه بود اصلا مشکل نداشت......... الان ساعت و دقیقه و ثانیه با کیفیت عالی و بی لرزش با همون فرکانس ک گفتم کار میکنه
              لرزش از وقتی شروع میشه که تاریخ رو اضافه میکنم
              الان یه فرمول هست برای محاسبه ================>>>> زمان= (پری اسکیل * بیت تایمر) تقسیم بر فرکانس میکرو

              این فرمول برای سر ریزی تایمره دیگه؟که واسه این فرکانس من میشه 2میلی ثانیه

              الان دقیق متوجه نشدم 40 بار در ثانیه چطور ایجاد میشه؟یعنی تایمر بعد از اینکه 12تا سگمنت رو 1 بار کامل رفرش کرد و 24 میلی گذشت بعد وقفه میده و از نو میشمره؟اون وقفه چقدره اونم دست ماست؟

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

              دیدگاه


                #22
                پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

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

                دیدگاه


                  #23
                  پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

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

                  اگه هربار رفرش 24 میلی ثانیه طول بکشه ( بنا به گفته خودتون)، تو هر ثانیه که 1000 میلی ثانیه هست شما باید بیشتر از 41.6 بار رفرش داشته باشین. اگه این عدد درست باشه دیگه لرزش حس نمیشه، ولی وقتی لرزش داریم، یعنی فرکانس رفرش کمتر از مقدار مورد نیازه.

                  اگه اسکوپ دارین، خروجی های آدرس میکرو رو ببینین و فرکانسش رو چک کنین. من الان یه نمایشگر 6 رقمی جلوم روشنه که با همون روشی که گفتم، با تاخیر 1 میلی ثانیه و مقاومتهای 180 اهمی برای هر سگمنت و رفرش ریت 66.6 بار در ثانیه داره کار میکنه. اگه تعداد ارقام رو به 12 افزایش بدم، رفرشم میشه 33.3 بار در ثانیه که بازم از 30 بیشتره. البته من تو سرویس وقفه کارهای دیگه ای هم دارم.
                  کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                  دیدگاه


                    #24
                    پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

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

                    اگه هربار رفرش 24 میلی ثانیه طول بکشه ( بنا به گفته خودتون)، تو هر ثانیه که 1000 میلی ثانیه هست شما باید بیشتر از 41.6 بار رفرش داشته باشین. اگه این عدد درست باشه دیگه لرزش حس نمیشه، ولی وقتی لرزش داریم، یعنی فرکانس رفرش کمتر از مقدار مورد نیازه.

                    اگه اسکوپ دارین، خروجی های آدرس میکرو رو ببینین و فرکانسش رو چک کنین. من الان یه نمایشگر 6 رقمی جلوم روشنه که با همون روشی که گفتم، با تاخیر 1 میلی ثانیه و مقاومتهای 180 اهمی برای هر سگمنت و رفرش ریت 66.6 بار در ثانیه داره کار میکنه. اگه تعداد ارقام رو به 12 افزایش بدم، رفرشم میشه 33.3 بار در ثانیه که بازم از 30 بیشتره. البته من تو سرویس وقفه کارهای دیگه ای هم دارم.
                    خب الان من فرکانسم 1 هست درسته؟اگه فرکانس رو زیاد کنم مخرج اون فرمول زیاد میشه و زمان سر ریز شدن کاهش پیدا میکنه من هرچقدر تغییر دادم درست نشد الان شما نظرتون درباره فرکانس و prescale چیه؟باید هردوش رو تغییر بدم یا تک تک؟و چه مقداری بهتره بذارم؟
                    من فرکانس رو 2 و 4 و 8 و 12 و 16 گذاشتم با همین prescale =8 اما جواب درستی نگرفتم prescale هم که بالا می برم چون صورت کسر اون فرمول زیاد میشه چشمک میزنه و تو بعضی از حالت هاش حتی میتونم ببینم کدوم سگمنت ها اول روشن میشن

                    یه سوال دیگه خب الان من که تعداد سگمنت هام دوبرابر شد پس زمان هم دوبرابر میشه باید فرکانس جدا تغییر کنه یا هم زمان و هم prescale?
                    در روزگاری که لبخند ادم ها بخاطر شکست توست برخیز تا بگیرند.........

                    دیدگاه


                      #25
                      پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

                      آقا شما فرکانس کریستال سخت افزارتون چقدره؟
                      کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                      دیدگاه


                        #26
                        پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

                        نوشته اصلی توسط نو رسیده
                        آقا شما فرکانس کریستال سخت افزارتون چقدره؟
                        واسه سخت افزار فقط کریستال ساعت دارم به میکرو هم باید کریسال جداگانه وصل کنم؟چون تاجایی که شنیدم و خوندم تایمر 0 و 2 با فرکانس خود میکرو کار میکنن نیاز به کریستال خارجی نیست
                        در روزگاری که لبخند ادم ها بخاطر شکست توست برخیز تا بگیرند.........

                        دیدگاه


                          #27
                          پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

                          منظورم همون کریستال میکرو هست. عددی که توی نرم افزار به عنوان فرکانس وارد میکنین باید با کلاک میکرو یکی باشه تا محاسبات تاخیر ها توی کامپایلر درست انجام بشه. سئوال من اینه که شما توی کد فرکانس رو 1 مگ گذاشتین. حالا کلاک واقعی میکرو چقدر هست؟ و تایمر صفر 8 بیتیه یا 16 بیتی؟
                          کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                          دیدگاه


                            #28
                            پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

                            نوشته اصلی توسط نو رسیده
                            منظورم همون کریستال میکرو هست. عددی که توی نرم افزار به عنوان فرکانس وارد میکنین باید با کلاک میکرو یکی باشه تا محاسبات تاخیر ها توی کامپایلر درست انجام بشه. سئوال من اینه که شما توی کد فرکانس رو 1 مگ گذاشتین. حالا کلاک واقعی میکرو چقدر هست؟ و تایمر صفر 8 بیتیه یا 16 بیتی؟
                            من داخل برنامه اینطوری تعریف کردم گفته بودم که 1مگا هرتز..این تایمر 8 بیتی هستش راستی فرکانس کاری میکروهم طبف دیتاشیتش از 0 تا 16 مگاهرتز هست

                            کد:
                            $regfile = "m32def.dat"
                            $crystal = 1000000
                            
                            Config Timer0 = Timer , Prescale = 8
                            Config Debounce = 25
                            Enable Interrupts
                            Enable Timer0
                            On Timer0 7seg
                            Start Timer0
                            
                            Dim Sel_7seg As Byte
                            Dim Flag As Byte
                            $swstack = 64
                             $hwstack = 64
                             $framesize = 64
                            در روزگاری که لبخند ادم ها بخاطر شکست توست برخیز تا بگیرند.........

                            دیدگاه


                              #29
                              پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

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

                              اینطور که معلومه شما دارین از کلاک داخلی میکرو استفاده میکنین وکریستال خارجی ندارین. در ضمن مقدارش رو هم نمیدونین. بنا براین تغییر عدد کریستال توی کد، دردی رو دوا نمیکنه. اول باید از روی فیوز بیتها یا رجیستر ها مقدار کلاک داخلی رو بفهمین. بعدش اون عدد رو توی کد وارد کنین تا محاسبات تایمر درست بشه. میکروتون چیه؟
                              کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

                              دیدگاه


                                #30
                                پاسخ : انتخاب فرکانس و prescale برای 12 سگمنت

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

                                اینطور که معلومه شما دارین از کلاک داخلی میکرو استفاده میکنین وکریستال خارجی ندارین. در ضمن مقدارش رو هم نمیدونین. بنا براین تغییر عدد کریستال توی کد، دردی رو دوا نمیکنه. اول باید از روی فیوز بیتها یا رجیستر ها مقدار کلاک داخلی رو بفهمین. بعدش اون عدد رو توی کد وارد کنین تا محاسبات تایمر درست بشه. میکروتون چیه؟
                                یعنی از طریق option کامپایلر بسکام؟اتفاقا الان رفتم داخلش دیدم نوع میکرو و فرکانس با اون چیزی که تو کد نوشتم فرق داره منظورم پیکره بندی خود نرم افزار هست اگر اونو با چیزی که داخل کدنویسی هست یکی کنم حل میشه؟میکرو atmega32a (نوع L هم هست) خب الان باید چیکارکنم؟از روی فیوز بیت چطور میشه فهمید؟
                                در روزگاری که لبخند ادم ها بخاطر شکست توست برخیز تا بگیرند.........

                                دیدگاه

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