اطلاعیه

Collapse
No announcement yet.

مشکل راه اندازی میکرو pic با کریستال ساعت

Collapse
این موضوع بسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    مشکل راه اندازی میکرو pic با کریستال ساعت

    سلام به همه دوستان
    من بار اولیه که میخوام از کریستال ساعت در برنامه و سخت افزار استفاده کنم اما متاسفانه اطلاعات کافی برا انجام این کار ندارم
    درخواست من از دوستان اینه :
    1 ) طریقه فعال کردن کریستال ساعت در برنامه (برای مثال در mikroC) چطوریه؟
    2 ) درصورت امکان سخت افزار ش رو در یک فایل پروتئوس نشون بدید
    برای مثال فایل زیر چطور تکمیل میشه؟(با پروتئوس ورژن 7.6 درست شده)

    http://uploadtak.com/images/b5l4dtnsaywqxvda2b17.zip

    درباره کار کردن میکرو PIC با کریسال ساعت اگه مطلبی دارید ممنون میشم در سایت قرار بدید :nerd:
    متشکرم

    #2
    پاسخ : مشکل راه اندازی میکرو pic با کریستال ساعت

    http://www.ccsinfo.com/forum/viewtopic.php?t=34488
    http://www.ccsinfo.com/forum/viewtopic.php?t=26177

    دیدگاه


      #3
      پاسخ : مشکل راه اندازی میکرو pic با کریستال ساعت

      ممنونم ، اما اگه ممکنه یه مقدار توضیح بدید، ما که از این دوتا لینک چیزی متوجه نشدیم :angry:
      سخت افزارشم برام مهمه که چجوری باید پیاده سازی بشه، اگه ممکنه فایل پروتئوس رو ببینید مشکلش چیه؟ :rolleyes:

      اضافه شده در تاریخ :
      بعد از کلی تحقیق فهمیدم کریستال ساعت باید به پایه های T1OSC وصل شه (با دو مقاومت 33p هم به منفی)
      اما هر کاری میکنم برنامه ای که نوشتم روش جواب نمیده
      بچه ها لطفا کمک کنید
      آیا برای اتصال کریستال ساعت به میکرو (pic16f877a ) مورد خاصی (مثلا تنظیمات فیوز بیت یا هر چیز دیگه) وجود داره؟
      توضیح هم اینکه وقتی تو پروتئوس این برنامه بجای کریستال ساعت ، dcClock قرار میدم (با فرکانس 32KHz) کاملا درست کار میکنه اما نمیدونم تو سخت افزارش چه مشکلی هست؟ متاسفانه توی هیچ سایت فارسی هم درباره اتصال کریستال ساعت به pic هیچ مثالی قرار داده نشده که درباره سخت افزارش راهنمایی کنه :cry2:

      دیدگاه


        #4
        پاسخ : مشکل راه اندازی میکرو pic با کریستال ساعت

        سلام
        سخت افزار شما به این شکل است :

        [روی شکل کلیک کنید تا در سایز واقعی نمایش داده شود]

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

        دیدگاه


          #5
          پاسخ : مشکل راه اندازی میکرو pic با کریستال ساعت

          با تشکر از زحمتی که میکشید
          اما اون برنامه ها با ccs نوشته شدن و زیاد متوجه نمیشم
          اگه ممکنه یه مثال از اتصال کریستال ساعت به pic که فایل hex و proteus هم همراش باشه بذارید تا بتونم عملکردشو در سخت افزار ببینم
          ببینید، مشکل من الان اینه که یه برنامه دارم که روی سخت افزار جواب نمیده این لینک برنامست
          http://www.persiangig.com/pages/download/?dl=http://sheytoon001.persiangig.com/other/MikroC%20project/teste%20crystale%20sAat%202.zip
          البته توی فایل پروتئوسش به جای کریستال ساعت از dcclock استفاده کردم چون با کریستال ساعت جواب نمیداد، الان در سخت افزاریم که درست کردم جواب نمیده یعنی اعداد روی lcd ثابت میمونن
          اگه امکان داره برنامه رو بررسی کنید

          دیدگاه


            #6
            پاسخ : مشکل راه اندازی میکرو pic با کریستال ساعت

            مشکل خاصی که دیده نمیشه . فقط شما در خطوط شماره 85 و 86 بدون چک کردن هیچگونه شرطی مقادیر تایمر را ریست میکنید؟؟
            درضمن اگر برنامتون رو بر اساس وقفه تایمر 1 بنویسید بهتر و دقیق تر به جواب میرسید

            دیدگاه


              #7
              پاسخ : مشکل راه اندازی میکرو pic با کریستال ساعت

              آقا محمد
              قسمت هایی از کد این برنامه که مربوط به کریستال 32768Hz میشه رو خودم ننوشتم و در واقع چیز زیادی در موردش نمیدونم
              اما به نظرم کد برنامش یه این صورت که که ابتدا با این کد ها تایمر 1 رو فعال میکنه

              TMR1L = 0;
              TMR1H = 128;
              T1CON = 6;
              T1CON |= 1;

              بعد در این خط چک میکنه که اگه بافر نشده ، ساعت رو نشون بده
              while(PIR1.TMR1IF == 0)//Check for overflow
              {
              //Display on LCD
              show();
              }
              در نهایت وقتی بافر پر میشه یعنی PIR1.TMR1IF=1 میشه اعداد پدیت میشن و خط 85 و 86 هم TMR1IF رو که بخاطره سرریز 1 شده بود دوباره 0 میکنه و 128 رو داخل TMR1H میریزه تا دقیقا یعد از 1 ثانیه دوباره سرریز شه
              اما الان مشکل من با سخت افزارشه ، کریستال ساعت کار نمیکنه و برنامه همون اول در حلقه بینهایت گیر میکنه!!!
              اگه دلیل این موضوع رو میدونید ، واقعا ممنون میشم راهنماییم کنید ، به این برنامه واقعا احتیاج دارم و زیاد هم وقت ندارم

              اضافه شده در تاریخ :
              خوب فکر میکنم بلاخره خودم تونستم درستش کنم :wow:
              از اونجایی که این مطلب در سایت های فارسی تقریبا وجود نداره حتی در سایت های خارجی هم بسختی پیدا میشه و تعداد کمی هم دربارش اطلاع دارن، وقتی کاملا به نتیچه رسیدم توی همین تاپیک مشکل کار رو اعلام میکنم تا دوستان هم استفاده کنن :job: :read:

              اضافه شده در تاریخ :
              خوب توضیحات که قبلا داده شد و فقط مشکل از مقداری که در T1CON قرار می گرفت بود
              برا اطلاع بیشتر به اینجا مراجعه کنید
              http://www.mikroe.com/app/webroot/forum/viewtopic.php?f=13&t=14572

              دیدگاه

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