اطلاعیه

Collapse
No announcement yet.

کار با مقایسه کننده های داخلی 16F877

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

    کار با مقایسه کننده های داخلی 16F877

    سلام دوستان
    من برای یه پروژه نیاز به کار با مقایسه کننده های داخلی 16F877 دارم.
    من با کامپایلر CCS کار میکنم لطفا قسمت کانفیگ اون رو برام توضیح بدید.
    من میخوام یه پایه به عنوان پایه + مقایسه کننده و 3 پایه دیگه به عنوان پایه های منفی مقایسه کننده باشه. یعنی مالتی پلکس بشه. چطوری باید دستورات کانفیگش رو بنویسم؟ :redface:
    AYRIC

    #2
    پاسخ : کار با مقایسه کننده های داخلی 16F877

    از دیتاشیت رجیستر های بخش Comparator رو مطالعه کنین.رجیستر CMCON رجیستر اصلی هست.
    تو ویزارد CCS هم که ماشاالله همه چی مشخص هست.
    شما خودتون تا جای ممکن برین جلو، سعی میکنیم راهنمایی کنیم، خودتون انجام بدین بهتره.

    دیدگاه


      #3
      پاسخ : کار با مقایسه کننده های داخلی 16F877

      مرسی از پاسختون
      راستش من سعی کردم از توی wizard و کدهایی که توی ccs هست یه چیزایی بفهمم اما با اولین چیزی که مشکل دارم بخش On Match توی wizard هست که چهار گزینه داره که من interrupt and clear pin رو انتخاب کردم درسته؟ اما نمیدونم چطور باید پایه های مثبت و منفی مقایسه کننده رو به یه پایه خاص مثلا a0 و a1 وصل کنم تا مثلا اگر ولتاژ پایه ی a0 از a1 بیشتر شد وقفه مقایسه کننده ایجاد بشه. wizard وقتی گزینه ای که گفتم رو انتخاب میکنم کد های زیر رو تولید میکنه
      setup_timer_1(T1_INTERNAL|T1_DIV_BY_1); //13.1 ms overflow

      setup_ccp1(CCP_COMPARE_CLR_ON_MATCH);
      setup_comparator(A0_A3_A1_A3_OUT_ON_A4_A5);
      AYRIC

      دیدگاه


        #4
        پاسخ : کار با مقایسه کننده های داخلی 16F877

        به صفحه ی 138 دیتاشیت رجوع کنین.توی شماتیک هایی که کشیده ،میشه این حالت:

        Two Common Reference Comparators with Outputs CM2:CM0 = 101

        به عبارتی ورودی A3 با ورودی های A0 و A1 مقایسه میشه و نتیجه ی مقایسه توی پایه های A4 و A5 دیده میشه.

        دیدگاه


          #5
          پاسخ : کار با مقایسه کننده های داخلی 16F877

          نوشته اصلی توسط شاهرخ
          به صفحه ی 138 دیتاشیت رجوع کنین.توی شماتیک هایی که کشیده ،میشه این حالت:

          Two Common Reference Comparators with Outputs CM2:CM0 = 101

          به عبارتی ورودی A3 با ورودی های A0 و A1 مقایسه میشه و نتیجه ی مقایسه توی پایه های A4 و A5 دیده میشه.
          مرسی
          من کد نوشتم و توی پروتئوس داره جواب میده
          یعنی وقتی مقدار A0 از A3 کمتر میشه A4 یک میشه و وقتی مقدار A1 از A3 کمتر میشه A5 یک میشه
          حالا اگه بخوام وقتی این اتفاق میافته به جای این که مقدار پایه های A4 و A5 تغییر میکنه بره توی وقفه باید چکار کنم؟
          AYRIC

          دیدگاه


            #6
            پاسخ : کار با مقایسه کننده های داخلی 16F877

            عزیز من شما اصلا به دیتاشیت نگاه نمیکنی بعد میای هی سوال میپرسی!!

            همونجایی که آدرس دادم،(صفحه ی 138 دیتاشیت-توضیحات رجیسترCMCON) دقیقا شماتیک بغل دستش میشه این حالت مد نظر شما! (CM2:CM0 = 100)

            دیدگاه


              #7
              پاسخ : کار با مقایسه کننده های داخلی 16F877

              ببخشید
              من 3 تا دیتاشیت از16F877 دارم که شبیه هم هستند و فقط تعداد صفحه هاشون با هم فرق میکنه ولی توی هیچکدوم از رجیستر CMCON چیزی ننوشته توی صفحه 138 هیچ چیزی راجع به ماژول COMPARE یا این رجیستر نیست.
              میشه شما دیتا شیتتون رو برای من بذارید
              AYRIC

              دیدگاه


                #8
                پاسخ : کار با مقایسه کننده های داخلی 16F877

                http://s4.picofile.com/file/78631236..._877A.pdf.html
                این دیتاشیت خدمت شما.
                اگه دیتاشیتی کامل باشه،حتما نوشته.توی فایل PDF سرچ بزنین.

                دیدگاه


                  #9
                  پاسخ : کار با مقایسه کننده های داخلی 16F877

                  ممنون :smile:
                  پس کلا همین 8 تا حالت رو داره .
                  حالا من که میخوام 3 تا ولتاژ رو با یه ولتاژ مرجع (که اونم از بیرون میاد)مقایسه کنم هیچکدوم از این حالت ها بدردم نمیخوره :cry:.
                  حالتCM2:CM0 = 110 میتونه این کار رو انجام بده اما اونم با vref داخلی اینکارو میکنه.
                  یعنی راهی نیست؟
                  AYRIC

                  دیدگاه


                    #10
                    پاسخ : کار با مقایسه کننده های داخلی 16F877

                    خب امکان مقایسه ی سه تا ولتاژ با یه ولتاژ مرجع مستقیما امکان پذیر نیست.مگر اینکه تو همین حالتی که فرمودین، با کنترل بیت CIS ، اون هم اگه قراره هر سه تا ولتاژ با هم مقایسه بشن، باید پایه هایA0 و A3 یا A1 و A2 به هم وصل بشن و یک بار مقایسه در حالت CIS=1 انجام بشه، نتیجه ش ذخیره شه و دفعه ی بعد با 0=CIS همین مرحله انجام بشه و نتیجه ی هر دو حالت با هم به شکل نرم افزاری مقایسه بشن....
                    خب عزیز من چه کاریه؟!! خب یه دفعه با یه LM324 همین کار رو انجام بده بره پی کارش!

                    دیدگاه


                      #11
                      پاسخ : کار با مقایسه کننده های داخلی 16F877

                      راستش اول با lm339 که تخصصی مقایسه کنندگی هستش اینکارو انجام داده بودم بعد گفتم برای خلوت شدن مدار و حرفه ای شدن کار از مقایسه کننده های داخلی استفاده کنم که معلوم شد نمیشه. اگه یه کار بزرگتر بود و یه میکرو مثل 30f4011 بود میشد اما حالا بهتره از همین روش مقایسه کننده خارجی استفاده کنم ممنون از پاسخ هاتون.
                      AYRIC

                      دیدگاه


                        #12
                        پاسخ : کار با مقایسه کننده های داخلی 16F877

                        میتونین با مالتی پلکسر آنالوگ، کارهای جالبی انجام بدین.درسته که قطعه ی خارجی میاد روی برد و شما میخواین این کار رو نکنین، اما اگه من مجبور باشم همین کار رو انجام بدم، ترجیح میدم مقایسه کننده داخلی میکرو رو استفاده کنم و این مالتی پلکسر http://www.javanelec.com/search.aspx?s=HCF4051

                        دیدگاه


                          #13
                          پاسخ : کار با مقایسه کننده های داخلی 16F877

                          ممنون
                          بااین مالتی پلکسرها البته یه مدل دیگه برای یه روبات کار کردم خوبه اما برای این کاری که من میخوام انجام بدم دوباره کاری میشه آخه یبار باید مالتی پلکس کنم یبار مقایسه کنم
                          AYRIC

                          دیدگاه


                            #14
                            پاسخ : کار با مقایسه کننده های داخلی 16F877

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

                            دیدگاه


                              #15
                              پاسخ : کار با مقایسه کننده های داخلی 16F877

                              ممنون از راهنمایی های خوبتون :nice:
                              AYRIC

                              دیدگاه

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