اطلاعیه

Collapse
No announcement yet.

اضافه کردن تایمر به برنامه ساعت

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

    اضافه کردن تایمر به برنامه ساعت

    سلام
    من این پروژه رو درست کردم ساعت با ATmega8 ولی میخوام یه تایمر هم بش اضافه کنم
    نمیدونم چیکارش کنم

    اگه بخوام با ATmega8 توی 2تا مد کار کنم ساعت و تایمر که تا هزارم ثانیه رو بتونه بشماره ، بنظر شما باید چیکار کنم؟! ( در مورد تقسیم کریستال که فرمودید اگر بر 128 باشه میشه 1ثانیه الان میخوام هر 1هزارم ثانیه اینتراپت بده چکار کنم؟!)
    و میخوام وقتی میکرو روشن میشه روی 7سگمنت ساعت باشه که تا اینجاشو درست کردم مشکلی نداره بعد میخوام با زدن یه دکمه بره توی مد تایمر و همه 7سگمنتا 0 بشن و با 2تا دکمه استارت/استاپ و ریست بشه کنترلشون کرد ( که ایناش مشکلی نداره ) الان میخوام بدونم برای رفتن از حالت ساعت به تایمر برنامه تایمرو کجا قرار بدم و چطور بینشون سویچ کنم؟!
    یعنی باید برنامه تایمر توی سرویس روتین انتراپت خارجی روی پایه ای باشه که دکمه تغییر مد قرار داره یا کار دیگه ای باید بکنم؟! ( نمیدونم مثلا برنامه تایمر رو در ادامه برنامه ساعت بنویسم یا نه و میخوام در حالت تایمر ساعت به کار خودش ادامه بده و وقتی از تایمر به مد ساعت برمیگردیم ساعت به کار خودش ادامه بده و عقب نمونه چکار باید بکنم؟!)

    چنتا مشکلم داره یکی این که توی شبیه ساز پروتوس 7سگمنتا درست روشن نمیشن و مجبور شدم Delay بنویسم براش ولی بازم به نظرم مشکل داره
    و این که برای روشن و خاموش شدن اون 2تا LED که وسط 7سگمنتا قرار میگیره نمیدونم بهتره کجا فرمان 0 و 1 شدن پایه PD7 رو بدارم که همیشه خاموش باشن به محض اضافه شدن ثانیه اونا هم روشنو خاموش شن
    همه فایل ها رو ضمیمه میکنم دوستان بتونن ببینن
    ممنون

    http://www.mediafire.com/?m59fsqpad6da43k
    82 کیلو بایت ( فایل C و پروژه کدویژن + فایل پروتئوس )
    درایور شبکه و nRF24L01
    کاتالوگ محصولات
    کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
    شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
    فروش اسيلوسکوپ GWinstek GOS-630FC

    #2
    پاسخ : اضافه کردن تایمر به برنامه ساعت

    دوست عزیز:
    - شما برنامه رو با 1MHZ نوشتی ولی شبیه سازیت با 4MHZ هست!این دو تا رو درست کن و ترجیحا کد رو با 8MHZ بنویس
    - delay رو در حد 5 تا 10 میلی ثانیه بزاری وضیعیت نمایش بهنر میشه.هر چند چون تعداد سگمنت ها زیاد هست انتظار زیادی از شبیه سازی نداشته باش.
    - برای کاری که شما می خوای انجام بدی از دو تا تایمر استفاده کنی بهتره.یکی همزمان و دیگری غیر همزمانوهرچند وقتی داری هزارم ثانیه رو نشون میدی خطا خواهی داشت.چون باید تایمر مد غیر همزمان رو هم update کنی.البته پایه های مد غیر همزمان با کریستال mega8 مشترک هست و این هم یه مشکل!
    - بهتره از ds1307 و موارد مشابه استفاده بشه

    دیدگاه


      #3
      پاسخ : اضافه کردن تایمر به برنامه ساعت

      ممنون تنظیمات codevision رو برای DS1307 و برنامشو درست متوجه نمیشم که چی باید بذارم
      درایور شبکه و nRF24L01
      کاتالوگ محصولات
      کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
      شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
      فروش اسيلوسکوپ GWinstek GOS-630FC

      دیدگاه


        #4
        پاسخ : پاسخ : اضافه کردن تایمر به برنامه ساعت

        نوشته اصلی توسط SUNMOON
        دوست عزیز:
        - شما برنامه رو با 1MHZ نوشتی ولی شبیه سازیت با 4MHZ هست!این دو تا رو درست کن و ترجیحا کد رو با 8MHZ بنویس
        - delay رو در حد 5 تا 10 میلی ثانیه بزاری وضیعیت نمایش بهنر میشه.هر چند چون تعداد سگمنت ها زیاد هست انتظار زیادی از شبیه سازی نداشته باش.
        - برای کاری که شما می خوای انجام بدی از دو تا تایمر استفاده کنی بهتره.یکی همزمان و دیگری غیر همزمانوهرچند وقتی داری هزارم ثانیه رو نشون میدی خطا خواهی داشت.چون باید تایمر مد غیر همزمان رو هم update کنی.البته پایه های مد غیر همزمان با کریستال mega8 مشترک هست و این هم یه مشکل!
        - بهتره از ds1307 و موارد مشابه استفاده بشه
        مرسی اما من همه رو امتحان کردم با تمام فرکانس ها برنامه نوشتم و توی پروتئوس هم فرکانس ها رو تغییر دادم فرق زیادی نکرد

        برنامشو نوشتم با کدویژن و 7سگمنت و توی پروتئوس هم شبیه سازی کردم فقط با ساعت کامپیوتر چک میکنم توی هر 60 ثانیه 10 ثانیه عقب میوفته که خیلی بده
        بنطرت مشکل از شبیه سازی پروتئوسه؟! یا مشکل دیگه ای داره؟!
        برنامه و تمام فایل ها رو میذارم ببینی و این که شاید به درد بخوره

        http://www.mediafire.com/?dpy4w3r43c1s8ns

        خب الان برای این چطور Stopwatch بذارم؟!
        یعنی مشکلم با Prescale و مقدار کریستاله که میلی ثانیه رو دقیق تولید کنه
        درایور شبکه و nRF24L01
        کاتالوگ محصولات
        کنترلر CNC شش محوره براي پرينتر 3D و Pick n Place
        شبيه ساز تک تيرانداز و سيبل ديجيتال با پردازش تصوير
        فروش اسيلوسکوپ GWinstek GOS-630FC

        دیدگاه


          #5
          پاسخ : اضافه کردن تایمر به برنامه ساعت

          شما میتونید با یه تایمر دیگه اون یه هزارم رو تولید کنید...مشکل خاصی ÷یش نمییاد فقط یه کم مصرف برق میکرو بیشتر میشه.حدود چند صد میکرو آم÷ر!!!!در مورد سوویچ بین ساعت و تایمر هم میتونید یه متغییر بیتی(flag) تعریف کنید.بعد این متغییر رو تو یه ext intتغییر بدید...بعد کل برنامه ی ساعت رو توی یهif با شرط فلق0 بگید .و برنامه ی تایمر رو هم توی یه if با شرط فلق1 بزارید......مشکل حل میشه!!!!!!!! :nice:
          long time ago,people who sacrificed their sleep,family,food,laugher and other joys of life
          were called SAINTS
          NOW,they are called
          ENGINEERS

          دیدگاه

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