اطلاعیه

Collapse
No announcement yet.

ساعت و تقویم شمسی

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

    #16
    پاسخ : ساعت و تقویم شمسی

    سلام .
    من دیتاشیت ds1307 رو خوندم .

    پایه 6 یا scl فقط ورودی هست که به master که همون میکرو هست وصل میشه ومیکرو باید یه نوسانی رو انجام بده و کلاک ها رو اون بزنه .

    اما دقیقا متوجه نمیشم ، پایه 7 که ورودی و خروجی دیتا هست چطوری باید آدرسی که میخواهد رو به ds1307 بده و ds1307 چطوری باید دیتایی که توی اون آدرس هست رو واسه میکرو بفرسته ؟

    چطوری start و stop میکنه ؟
    چطوری رایت میکنه ؟
    و چطوری از ds1307 میخونه ؟

    تو دیتا شیت میگه آدرس بایت دارای 7 بیت آدرسه با 1101000 که نمیدونم چی رو میگه که اگه 0 باشه رو ds1307 رایت میکنه و اگه 1 باشه از ds1307 میخونه .







    بگو که گل نفرستد کسی به خانه من
    که عطر یاد تو پر کرده آشیانه من

    دیدگاه


      #17
      پاسخ : ساعت و تقویم شمسی با ds1307

      من تو پرتوکل i2c مشکل دارم .


      لطفا اگه کسی برنامه ای با codevision برای راه اندازی ds1307 داره بزاره .


      مرسی .
      بگو که گل نفرستد کسی به خانه من
      که عطر یاد تو پر کرده آشیانه من

      دیدگاه


        #18
        پاسخ : ساعت و تقویم شمسی

        قربان کدویژن خودش تابع آماده داره فقط کافیه تو فایل help اش بگردید

        دیدگاه


          #19
          پاسخ : ساعت و تقویم شمسی

          :cry2: :cry2: :cry2: :cry2:
          بگو که گل نفرستد کسی به خانه من
          که عطر یاد تو پر کرده آشیانه من

          دیدگاه


            #20
            پاسخ : ساعت و تقویم شمسی

            چقدر شما کار با DS1307 رو سخت گرفتین
            یه نگاهی هم به help کدووووووویژن بندازید بد نیست (عمدا گفتم کدووووووووویژن)
            هر عملی که بخوایین انجام بدین (نوشتن در ایسی یا خواندن از ایسی) یک سری آدرس های خاص داره که همش تو دیتاشیت DS1307 هست
            مثلا برای نوشتن در ای سی باید عدد 208 رو روی خط I2C و برای خواندن از ای سی عدد 209 رو بفرستی
            من با کدوووووویژن بلد نیستم وگرنه کمکت میکردم
            ولی اگه با بسکام خواستی در خدمتم
            پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

            دیدگاه


              #21
              پاسخ : ساعت و تقویم شمسی

              با سلام
              چطور میشه زمان یه ساعت رو بصورت PAUSE نگه داشت استفاده در ATMEGA8 و نمایش روی LCD باشه
              ممنون میشم اساتید و استادان عزیز پاسخ بدن. :cry:

              دیدگاه


                #22
                پاسخ : ساعت و تقویم شمسی

                میشه یکم روشنتر بفرمایید چی میخوایین؟
                اگر کریستال ds1307 دیگه نوسان نکنه زمان محاسبه نمیشه
                پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                دیدگاه


                  #23
                  پاسخ : ساعت و تقویم شمسی

                  با سلام
                  میخوام این ساعت رو به یه دستگاه وصل کنم که ساعت کار کردشو نشون بده که مثلا 3000 ساعت زمان داشته باشه و مثلا بعد از 500 ساعت کار- زمان تعمیرات و سرویس دستگاه رسیده. میخوام این ساعت زمانی کار کنه که دستگاه روشنه که اگه مدار طوری باشه که اگه دو پایشو به هم اتصال بدی ساعت مثل یه ساعت دقیق کار کنه و اگر قطع بشه ساعت بصورت PAUSE بمونه تا دوباره هر وقت دستگاه روشن شد از ادامه ساعت شروع به کار کنه.از طرفی اگه بشه براش آلارم هم بزازین عالی میشه بصورتی که بهش زمان بدیم و وقتی ساعت به ززمان تنظیمی رسید یه خروجی داشته باشیم اگه سورس برنامه بصورت BASCOM باشه عالی میشه .ممنون از شما امیر حسنی کاخکی

                  دیدگاه


                    #24
                    پاسخ : ساعت و تقویم شمسی

                    سلام
                    فکر نکنم استفاده از DS1307 زیاد برای این کار مناسب باشه
                    شما باید از تایمرهای میکرو استفاده کنید تا هروقت که خواستین فعال و هر وقت که خواستین غیر فعال کنید
                    پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                    دیدگاه


                      #25
                      پاسخ : ساعت و تقویم شمسی

                      سلام

                      میتونید با تایمر بنویسید و در هر interrupt مثلا 1ms در EEPROM زمان فعلی رو ثبت کنید.

                      برنامه شما باید با خواندن زمان قبلی شروع بشه.

                      Work with what you have .Never limit yourself by things you could have had

                      دیدگاه


                        #26
                        پاسخ : ساعت و تقویم شمسی

                        من زیاد تو برنامه نویسی بیسیک وارد نیستم دوست عزیز -میشه نمونشو برام بنویسید؟ :sad:

                        دیدگاه


                          #27
                          پاسخ : ساعت و تقویم شمسی

                          من با بیسیک کار نکردم.

                          ببین کاری نداره فرض کن یه تایمر داریم که هر 1ms داره وقفه میده حالا کاری که ما میکنیم اینه که تو روتین وقفه. 1ms به زمان سپری شدمون اضافه میکنیم.

                          حالا زمان سپری شده رو میتونیم تو EEPROM ثبت کنیم.

                          الگریتمش اینجوری میشه:

                          1-زمان فعلی را از eeprom بخوان و در currentTime قرار بده.

                          2-در هر وقفه currentTime رو یکی اضافه کن ودر eeprom بنویس.

                          این قالب کلی هست این کار رو بکن اگه جواب گرفتی یه شبه کد کامل تر واست میزارم


                          موفق باشی
                          Work with what you have .Never limit yourself by things you could have had

                          دیدگاه


                            #28
                            پاسخ : ساعت و تقویم شمسی

                            سلام .

                            نوشته اصلی توسط امیر حسنی کاخکی
                            چقدر شما کار با DS1307 رو سخت گرفتین
                            یه نگاهی هم به help کدووووووویژن بندازید بد نیست (عمدا گفتم کدووووووووویژن)
                            هر عملی که بخوایین انجام بدین (نوشتن در ایسی یا خواندن از ایسی) یک سری آدرس های خاص داره که همش تو دیتاشیت DS1307 هست
                            مثلا برای نوشتن در ای سی باید عدد 208 رو روی خط I2C و برای خواندن از ای سی عدد 209 رو بفرستی
                            من با کدوووووویژن بلد نیستم وگرنه کمکت میکردم
                            ولی اگه با بسکام خواستی در خدمتم
                            میشه در مورد نوشتن رو آیسی و خوندن از روی آیسی بیشتر توضیح بدید ؟
                            بگو که گل نفرستد کسی به خانه من
                            که عطر یاد تو پر کرده آشیانه من

                            دیدگاه


                              #29
                              پاسخ : ساعت و تقویم شمسی

                              Getdatetime:
                              I2cstart
                              I2cwbyte Ds1307w
                              I2cwbyte 0
                              I2cstart
                              I2cwbyte Ds1307r
                              I2crbyte _sec , Ack
                              I2crbyte _min , Ack
                              I2crbyte _hour , Ack
                              I2crbyte Weekday , Ack
                              I2crbyte _day , Ack
                              I2crbyte _month , Ack
                              I2crbyte _year , Nack
                              I2cstop
                              _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
                              _day = Makedec(_day) : _month = Makedec(_month) : _year = Makedec(_year)
                              Weekday = Makebcd(weekday)

                              Return

                              Setdate:
                              _day = Makebcd(_day) : _month = Makebcd(_month) : _year = Makebcd(_year)
                              I2cstart
                              I2cwbyte Ds1307w
                              I2cwbyte 4
                              I2cwbyte _day
                              I2cwbyte _month
                              I2cwbyte _year
                              I2cwbyte Weekday
                              I2cstop
                              Return

                              Settime:
                              _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour) : Weekday = Makebcd(weekday)
                              I2cstart
                              I2cwbyte Ds1307w
                              I2cwbyte 0
                              I2cwbyte _sec
                              I2cwbyte _min
                              I2cwbyte _hour
                              I2cwbyte Weekday
                              I2cstop
                              Return

                              ببین این سورسی که گذاشتم مال بسکامشه
                              خلاصه اش هم اینجوریه که:
                              برای خوندن از ای سی اول i2c رو فعال میکنی
                              بعد عدد bcd 209 رو میفرستی
                              از این به بعد DS1307به ترتیب ثانیه دقیقه ساعت روز ماه سال و روز هفته رو براتون میفرسته
                              فقط بین هرکدوم از ارسالها منتظر تایید میکرو میمونه
                              نوشتن هم دقیقا مثل خوندنه فقط جای میکرو با DS1307 در ارسالها و دریافتها تغییر میکنه
                              امیدوارم روشن گفته باشم
                              پروردگارا: به من زیستنی عطا کن که در لحظه مرگ بر بی ثمری لحظه ای که برای زیستن گذشته است حسرت نخورم، و مردنی عطا کن که بر بیهودگیش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست میداری

                              دیدگاه


                                #30
                                پاسخ : ساعت و تقویم شمسی

                                سلام .

                                من با code vision کار میکنم .


                                بگو که گل نفرستد کسی به خانه من
                                که عطر یاد تو پر کرده آشیانه من

                                دیدگاه

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