اطلاعیه

Collapse
No announcement yet.

تایمر 2 pic

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

    #16
    پاسخ : تایمر 2 pic

    جوزف جان این PR2 چی بود من یادم رفته :redface:

    دیدگاه


      #17
      پاسخ : تایمر 2 pic

      تو دیتاشیت خوشکل نوشته ! آروین :
      timer 2 period register
      و در قسمت وقفه داریم :
      TMR2IE: TMR2 to PR2 Match Interrupt Enable bit
      1 = Enables the TMR2 to PR2 match interrupt
      0 = Disables the TMR2 to PR2 match interrupt

      TMR2IF: TMR2 to PR2 Match Interrupt Flag bit
      1 = TMR2 to PR2 match occurred (must be cleared in software)
      0 = No TMR2 to PR2 match occurred

      __________________________
      The Timer2 module has an 8-bit period register PR2.
      Timer2 increments from 00h until it matches PR2 and
      then resets to 00h on the next increment cycle. PR2 is
      a readable and writable register. The PR2 register is initialized
      to FFh upon reset.
      کافیه ؟
      if all men are the same
      then
      why do women take so long to choose one ?

      دیدگاه


        #18
        پاسخ : تایمر 2 pic

        نوشته اصلی توسط josef2600
        معمولا این سبک مشکلات انگشتی و دقیق نشدن تایمر ها از تنظیم اشتباه وقفه ها و یا اشتباه تنظیم شدن اینتراپت ها هستش . از اول بنویس . چک نکن . دوباره وقفه ها رو بنویس و داخل برنامه ی وقفه پرش نزار و فقط یک عدد رو اضافه کن . اگه چندتا وقفه باهم داشته باشی ، باید خیلی دقیق شرط ها رو تنظیم کنی . if ها رو چک کن . همش توی دیتاشیت هستش .
        حالا برنامه . برای تایمر 2 و کریستال و کلاک 20 مگ ( pll نداری ) تنظیم تایمر 2 میشه :

        void InitTimer2(){
        T2CON = 0x7E;
        PR2 = 254;
        TMR2IE_bit = 1;
        INTCON = 0xC0;
        }

        void Interrupt(){
        if (TMR2IF_bit){
        TMR2IF_bit = 0;
        //Enter your code here
        }
        }

        زمان هر وقفه
        //Prescaler 1:16; Postscaler 1:16; TMR2 Preload = 254; Actual Interrupt Time : 13.008 ms
        که حداکثر هستش . حالا دیگه زمان مورد نیازت رو یه رجیستر دیگه بزار که بشمره ( داخل برنامه ی اصلیت نه تو وقفه تو وقفه فقط اضافه بشه بهش ) . یادت نره وقتی که تایم مورد نظرت رو ساخت ، حتما رجیسترها ی مرتبط رو صفر کنی .
        با تشکر از شما. میخواستم ببینم باید وقفه اینتراپت هم بزارم تا دقیق بشه حتما؟؟ من نزاشتم وقفه اینتراپت.فقط وقفه تایمر 2 رو گذاشتم و اونجا به متغییر جهانیم یه عدد اضافه میکنم......
        از وقفه تایمر صفر هم استفاده کردم به همین صورت.اونم دقیق نیستش ولی زیاد مهم نیس برام دقیق باشه. میشه بیشتر راهنمایی کنید.مرسی
        طب اسلامی

        دیدگاه


          #19
          پاسخ : تایمر 2 pic

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

          دیدگاه


            #20
            پاسخ : تایمر 2 pic

            نوشته اصلی توسط mahdifaheca
            آقا من به این نتیجه رسیدم که اصلا با تایمر صفر و 2 داخلی نمیشه زمان دقیق ایجاد کردش!!! چراش نمیدونم. اگر نمیشه پس چرا اسمشون تایمر گذاشتن!!!!!!!
            با تقریب خوبی میتونی تایمر بسازی ثانیه 0.01300 میشه دقتش! ولی مشکل شما چیز دیگه ایه

            دیدگاه


              #21
              پاسخ : تایمر 2 pic

              نوشته اصلی توسط arvinfx
              با تقریب خوبی میتونی تایمر بسازی ثانیه 0.01300 میشه دقتش! ولی مشکل شما چیز دیگه ایه
              آقا دمت گرم که همراهی میکنی مار. به نظر شما توی سخت افزار چیز خاسی نمیخادش تایمر 2؟؟ راحت با تایمر داخلی یک میشه زمان دقیق به دست آوردش. ولی تایمر 2 یه بار تو ده ثانیه 20 تا مشماره,یه بار 30 تا. اصلا دقیق نیستش!!!!!!
              طب اسلامی

              دیدگاه


                #22
                پاسخ : تایمر 2 pic

                نوشته اصلی توسط mahdifaheca
                آقا دمت گرم که همراهی میکنی مار. به نظر شما توی سخت افزار چیز خاسی نمیخادش تایمر 2؟؟ راحت با تایمر داخلی یک میشه زمان دقیق به دست آوردش. ولی تایمر 2 یه بار تو ده ثانیه 20 تا مشماره,یه بار 30 تا. اصلا دقیق نیستش!!!!!!
                والا دقیق بودنش رو مظمعن هستم ولی نه در جد ساعت اتمی! چیزی که شما دارین خیلی شبیه WDT هستش ولی من خیلی مطمعن نیستم

                دیدگاه


                  #23
                  پاسخ : تایمر 2 pic

                  چطور شبیه wdt هستش؟؟ منم زیاد دقیق نمیخام. ولی اصلا پایدار نیستش. شما با ccs کار میکنید؟؟
                  طب اسلامی

                  دیدگاه


                    #24
                    پاسخ : تایمر 2 pic

                    آخه میگی رندوم عدد میده که یه بار وقتی WDT فعال بود منم به همین معضل گرفتار شده بودم
                    نه من با Mikrobasic کار میکنم

                    دیدگاه


                      #25
                      پاسخ : تایمر 2 pic

                      نوشته اصلی توسط arvinfx
                      آخه میگی رندوم عدد میده که یه بار وقتی WDT فعال بود منم به همین معضل گرفتار شده بودم
                      نه من با Mikrobasic کار میکنم
                      شما توی mikrobasic از تایمر 2 جواب دقیق گرفتید؟ من فیوز بیتام مثل زیر تنظیم کردم. wdt هم غیر فعاله.کاش فعال بودش الان غیر فعالش میکردم درست میشد
                      #fuses hs,NOWDT,BROWNOUT,PROTECT
                      طب اسلامی

                      دیدگاه


                        #26
                        پاسخ : تایمر 2 pic

                        نوشته اصلی توسط mahdifaheca
                        شما توی mikrobasic از تایمر 2 جواب دقیق گرفتید؟ من فیوز بیتام مثل زیر تنظیم کردم. wdt هم غیر فعاله.کاش فعال بودش الان غیر فعالش میکردم درست میشد
                        #fuses hs,NOWDT,BROWNOUT,PROTECT
                        آره من از همه تایمر ها جواب دقیق گرفتم
                        BROWNOUT رو هم خاموش کن ببین شاید فرجی شد

                        دیدگاه


                          #27
                          پاسخ : تایمر 2 pic

                          به نظرت خیلی طول میکشه تا microc رو یاد بگیرم؟؟ فکنم باید مهاجرت کنم به microc این ccs خیلی عذاب میده. کدای تولیدی تو میکروسی چطوریه؟؟ زیاد نیستش؟؟
                          طب اسلامی

                          دیدگاه


                            #28
                            پاسخ : تایمر 2 pic

                            فکر کنم بهتره بیای روی Mikroc راحته این سری کمپایلرها ولی خوب باید وقت بزاری دیگه... درمورد کد هم کتابخونه های آماده کارآمدی داره

                            دیدگاه


                              #29
                              پاسخ : تایمر 2 pic

                              Mikroc بسیار بهتر از ccs هستش . شما که پول نمیخواد بدی !!! ولی یادت باشه که ccs خیلی استاندارد انسی نیست . ولی Mikroc بسیار استاندارده و دقیقه . کار کنی متوجه میشید . بگذریم .
                              اولاندش یه سوال ! یعنی چی این جملتون " میخواستم ببینم باید وقفه اینتراپت هم بزارم تا دقیق بشه حتما؟؟ من نزاشتم وقفه اینتراپت " !! پس چجوری با تایمر ها کار میکنین ؟ اصلا پس چرا تایمر چندتا میزارن ؟ با روش شما که 4 تا nop بزاری تو یه حلقه ، نیازی به تایمر هم نداری ! تایمر رو وقتی میخوای برای زمان سنجی استفاده بکنی ، باید وقفه رو بزاری . بعدش من که برنامه رو گذاشتم ! شما همون رو توی پروتئوس شبیه سازی بکن و ببین . بعد دیتاشیت رو باید با دقت مطالعه کنید . دوباره میگم :
                              تنظیمات تایمر 2 همین هستش که توی حلقه ی اصلی همون اول قرار میگیره . و آخرش هم اینتراپت رو روشن میکنه .
                              T2CON = 0x7E;
                              PR2 = 254;
                              TMR2IE_bit = 1;
                              INTCON = 0xC0;
                              و اینم مال برنامه ی وقفه هستش . اصلا با وقفه کار کردین ؟ اگه نه به help کامپایلرتون مراجعه کنید .

                              void Interrupt(){
                              if (TMR2IF_bit){
                              TMR2IF_bit = 0;
                              اینجا کد وقفه رو میزاری . مثلا رجیسترت رو یکی اضاف میکنی .
                              }

                              اگه کامپایلرت دستور TMR2IE_bit = 1; رو شناسایی نکرد ، PIE1 برابر 2 بکن . همین .

                              تمام . حالا تو برنامت هر وقت به عدد مورد نظر رسیدی ، رجیسترت رو صفر کنی تا دوباره بشمره .
                              من بنا به دلایلی خیلی علاقه به چرخیدن بیش از نیاز ندارم . برای همین دیر به دیر ممکنه بیام . نیازی به پیغام شخصی نیست . معمولا بعضیا خوش ندارن جوابام رو بخونن !
                              موفق باشید .
                              if all men are the same
                              then
                              why do women take so long to choose one ?

                              دیدگاه


                                #30
                                پاسخ : تایمر 2 pic

                                در ضمن یک نکته ی حیاتی : سعی کن هرگز با تایمر 0 کار نکنی . چون 99% مواقع ، خوده کامپایلر باهش کار میکنه برای تنظیمات زمانها . مثلا پورت های سریال و ... . بعد بعضی سخت افرارهای داخلی هم با سایر تایمرها کار میکنن که باید به دیتاشیت رجوع کنید .
                                if all men are the same
                                then
                                why do women take so long to choose one ?

                                دیدگاه

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