اطلاعیه

Collapse
No announcement yet.

ساختنdelay

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

    ساختنdelay

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

    از تایمر داخل مد 2 استفاده کردم و اون روبا250- بارگذاری کردم و داخل یه حلقه for با عدد4000 قرار دادم ولی خوب نشد

    لطفا راه نمایی کنید

    #2
    ساختنdelay

    سلام . خوبی دوست عزیز؟
    ظاهرا که با C دارید کد مینویسید. باید بگم که در این حالت نمیشه به حلقه ها اعتماد کرد چون مقدار تاخیر هر دستور مشخص نیست بنابراین باید از تایمر استفاده کنید . نکته دیگه اینکه هر چه قدر که تاخیر زمانی شما بیشتر در تایمر باشه بهتره به این جهت که تایمر به خودی خود دقیق هست ولی زمانی که ما با چند تا دستور داریم تکرارش میکنیم دچار خطا میشه .
    بنابر این بهتره که از مد 1 استفاده کنید یه بار زمان های تایمر رو دقیق حساب کنید و اعداد رو بارگذاری کنید ببینید مثلا توی یک ساعت چقدر خطا میکنه (برای اینکه کارتون سریع تر بشه سرعتش رو 10 برابر بکنید) بعد به صورت تجربی داده های پیش فرض تایمر رو کم و زیاد کنید تا به یه خطای معقول برسید .

    من راه حل بهتری ندارم البته علتش اینه که می خواهید برنامه رو با سی بنویسید اگه بناباشه با اسمبلی بنویسید میشه تک تک دستور ها رو محاسبه کرد .
    موفق باشید.
    شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
    هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
    چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

    دیدگاه


      #3
      ساختنdelay

      سلام محمد جان :
      توی زبان اسمبلی که مدت زمان انجام هر دستور العمل مشخص هستش می خواستم ببینم داخل c این طور نیست

      دیدگاه


        #4
        ساختنdelay

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

        دیدگاه


          #5
          ساختنdelay

          سلام . خوبی دوست عزیز؟
          توی سی کامپیوتر با دستور ASM$ کورشه باز و بسته میشه دستورات اسمبلی نوشت . ولی نمیدونم توی فرانکلین و کیل اینطوری هست یا نه.
          موفق باشید.
          شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
          هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
          چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

          دیدگاه


            #6
            ساختنdelay

            با سلام خدمت اساتید عزیز
            بنده زیاد در این مورد وارد نیستم ولی تو یه کتابی نوشته بود میشه این کار رو کرد.
            یعنی توی فرانکلین با دستور ASM@ (البته فکر میکنم!) میتونیم دستورات اسمبلی رو وارد کنیم.
            فقط خواستم گفته باشم.
            موفق باشید.

            دیدگاه


              #7
              ساختنdelay

              من تا حالا چندبار این کار رو کردم بنظر من بهترین روش (کم دردسر ترین) اینه که اول با همون تایمر در مود یک (16بیتی) و یک حلقه for مقدار یک ثانیه رو حساب بکنی مثلا:
              16x62500 = 1000000
              بعد برو توی keil و کامپایلش کن بعد توی قسمت project -> option for tareget... میتونی فرکانس کریستال رو تغییر بدی (بصورت default روی 12MH هست). بعد دیباگ رو بزن، میبینی که اون بغل (سمت چپ) رجیسترها رو نوشته. یه جایی هم نوشته شده "sec" که جلوش مقدار زمانی که رفته بر اساس ثانیه نوشته(البته 1میکرو ثانیه رو هم نشون میده!) حالا اگه مثلا تابعی که delay یک ثانیه ای ایجاد میکنه اسمش هست: "wait_a_sec()" برنامت رو اینجوری بنویس (البته احتیاجی بگفتن نیست چون دیگه مطمئنا بقیش رو خودتون بلدید :roll: )
              void main(void) { I
              wait_a_sec(); I
              {
              (اون I آخر هر سطر هم که فقط برای اینه که جای حروف بهم نخوره....)
              بعد دکمه step over رو بزن از روی wait_a_sec رد میشه و جلوی sec (همون سمت چپ) دقیقا نشون میده که چقدر طول کشیده . بعدشم دیگه اینقدر TL0 و TH0 ... رو کم و زیاد کن تا دقیق دقیق بشه 1ثانیه.
              آقای نحوی، حالا بازم برید با فرانکلین کار کنید (فکر کنم آخرش این جمله رو به امضام اضفه کنم )
              (زیادی حرف زدم، نه؟ )
              قربان همتون.....شهاب
              سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
              www.best-circuits.com
              (زبان فارسی به سایت اضافه شد)

              دیدگاه


                #8
                ساختنdelay

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

                دیدگاه


                  #9
                  ساختنdelay

                  نوشته اصلی توسط رضا حاجی زاده
                  با سلام
                  اقا شهاب بابا این اقای نحوی خیلی اقاهستند
                  بابا چرا داری این اقا محمد رو چوب کاری می کنید
                  هر که دورماند از اصل خویش بازجوید روز گار وصل خویش(اگه درست گفته باشم )
                  خوب فرانکلین بدبخت هم خیلی خوبه
                  کم سنگ این کیل رو به سینه بزن
                  می بینی فردا فاتحه شرکت خونده میشه
                  بزن به تخته
                  در آقا بودن اقای نحوی که شکی نیست
                  چوب کاری؟؟؟ بابا فقط یکم شوخی میکنیم (البته اگه آقای نحوی ناراحت نشن )
                  فرانکلینم خوفه ولی keil بهتره
                  نمیدونم چی شد که اینقدر دارم سنگ این کیل رو به کلم میزنم (به سینم میزنم ) ولی خوب چیکار کنم آخه keil بهتره
                  گذشته از شوخی راهی گفتم رو کسی امتحان کرد؟ بنظر خودم که کم دردسر ترین راه همینه (که برید با keil کار کنید )
                  قربان همتون (مخصوصا آقا نحوی)....شهاب
                  سایت صغیر این بنده حقیر منتظر بازدید و نظرات شما دوستان کبیر میباشد
                  www.best-circuits.com
                  (زبان فارسی به سایت اضافه شد)

                  دیدگاه


                    #10
                    DS1307 Real Time Clock

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

                    دیدگاه


                      #11
                      ساختنdelay

                      سلام

                      رضا جان تن مولوی تو گور لرزید.........

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

                      دیدگاه


                        #12
                        ساختنdelay

                        سلام maker:
                        اگه زحمتش رو بکشی که عالیه
                        اگه ممکنه خواهش می کنم :cry: کامل توضیح بدین

                        ممنون

                        دیدگاه


                          #13
                          ساختنdelay

                          دوستان سلام .
                          شهاب جان حق با شما هست کیل کامپایلر قوی تری هست ولی من چون از اول با فرانکلین کار کردم دیگه با اون راحت تر هستم .مطلب دیگه اینکه کیل یه مقدار حرفه ای هست و شاید برای شروع خوب نباشه . از پاسختون ممنونم .
                          maker جان، در مورد RTC من هم شنیده بودم ولی کار باهاش رو بلد نیستم اگه لطفت کنی و به ما هم یاد بدی ممنون میشیم .
                          موفق باشید.
                          شأن انسان در ایمان و هجرت و جهاد است و هجرت، مقدمهآ‌ی جهاد فیآ‌سبیلآ‌الله.
                          هجرت، هجرت از سنگینیآ‌هاست و جاذبهآ‌هایی که تو را به خاک میآ‌چسباند.
                          چکمهآ‌هایت را بپوش، رهآ‌توشهآ‌ات را بردار و هجرت کن.

                          دیدگاه


                            #14
                            ساختنdelay

                            سلام دوستان
                            در مورد RTC راستش زحمت خیلی زیادی کشیدم تا تونستم با بسکام برنامه اش رو بنویسم
                            آی سی DS1307 یک ساعت واقعی هستش یعنی کریستال ساعت بهش وصل می شه و باطری بک اپ 3 ولتی تا در زمانی که تفذیه مدار قطع شد آی سی کار خودش رو انجام بده ای آی سی به غیر از ساعت دقیقه و ثانیه در ثبات هاش سال ماه روز و نام روز هفته رو هم ذخیره می کنه سال کبیسه رو هم همینطور با باس I2C به میکرو مصل می شه
                            دیتا شیت رو دانلود کنید تا اینجای کار ...
                            محبت نیرومندترین جادوهاست

                            دیدگاه


                              #15
                              ساختنdelay

                              من توی avr ها دیدم بعضهاشون یک کریستال جدا میخوره برای ساعت منظورتون همونه
                              فهبنی صبرت علی عذابک فکیف اصبرعلی فراقک
                              گیرم که برعذاب توصبر کنم ،چگونه بر جدایی ات شکیبایی ورزم

                              دیدگاه

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