اطلاعیه

Collapse
No announcement yet.

نمایش تاریخ اشتباه در ds1307

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

    نمایش تاریخ اشتباه در ds1307

    من مدتیه بااین ماژول ds1307 کار میکنم اما الان به یه درگیریهایی باهاش خوردم
    من ساعت و تاریخ این ماژول رو ست میکنم اما سالش رو همیشه موقع فراخوانی 2048 نمایش میده و همینطور روز هفته رو هم کلا دوشنبه میزنه . اینو باید چیکارش کنم ؟ لطفا سریعتر جواب بدین. ممنون
    اینم کدم
    کد:
    _sec = 00
    _min = 54
    _hour = 10
    Gosub Settime
    Wait 2
    M_day = 17
    M_month = 11
    _year = 2017
    Gosub Setdate
    Do
    
    Gosub Read_date_time
    If _sec <> _seci_1 Then
    Locate 3 , 1
    Lcd M_year : Lcd "/" : Lcd M_month : Lcd "/" : Lcd M_day
    If Weekday = 7 Then Lcd " sun"
    If Weekday = 1 Then Lcd " mon"
    If Weekday = 2 Then Lcd " tus"
    If Weekday = 3 Then Lcd " wen"
    If Weekday = 4 Then Lcd " Thr"
    If Weekday = 5 Then Lcd " fri"
    If Weekday = 6 Then Lcd " sat"
    Lcd "  "
    Lcd Weekday .
    
    
    Locate 4 , 1
    Lcd "                    "
    Locate 4 , 1
    Lcd "TIME: " ; _hour ; ":" ; _min ; ":" ; _sec ; "   "
    _seci_1 = _sec
    End If
    Loop
    
    '=======================
    Gsmint:
    Return
    End
    Check_card:
    Return
    End
    '=======================
    
    '*******************************************************************************
    '******************************                                    READ DATE AND TIME        ****************
    '******************************                                 ****************
    '*******************************************************************************
    
    Read_date_time:
      I2cstart                                                  ' Generate start code
      I2cwbyte Ds1307w                                          ' send address
      I2cwbyte 0                                                ' start address in 1307
      I2cstart                                                  ' Generate start code
      I2cwbyte Ds1307r                                          ' send address
      I2crbyte _sec , Ack
      I2crbyte _min , Ack                                       ' MINUTES
      I2crbyte _hour , Ack                                      ' Hours
      I2crbyte Weekday , Ack                                    ' Day of Week
      I2crbyte M_day , Ack                                      ' Day of Month
      I2crbyte M_month , Ack                                    ' Month of Year
      I2crbyte _year , Nack                                     ' Year
      I2cstop
      _sec = Makedec(_sec) : _min = Makedec(_min) : _hour = Makedec(_hour)
      M_day = Makedec(m_day) : M_month = Makedec(m_month) : _year = Makedec(_year)
      M_year = 2000 + _year
      Weekday = Makedec(weekday)
    Return
    
    '*******************************************************************************
    '******************************                                 ****************
    'WWW.ISEEE.IR *****************             SET TIME            ****************
    '******************************                                 ****************
    '*******************************************************************************
    
    Settime:
      _sec = Makebcd(_sec) : _min = Makebcd(_min) : _hour = Makebcd(_hour)
      I2cstart
                                                 ' Generate start code
      I2cwbyte Ds1307w
                                                      ' send address
      I2cwbyte 0                                                ' starting address in 1307
      I2cwbyte _sec                                             ' Send Data to SECONDS
      I2cwbyte _min                                             ' MINUTES
      I2cwbyte _hour
                                                      ' Hours
      I2cstop
    Return
    '*******************************************************************************
    '******************************                                 ****************
    'WWW.ISEEE.IR *****************              SET DATE           ****************
    '******************************                                 ****************
    '*******************************************************************************
    
    Setdate:
    
      _year = M_year - 2000
      M_day = Makebcd(m_day) : M_month = Makebcd(m_month) : _year = Makebcd(_year)
      I2cstart                                                  ' Generate start code
      I2cwbyte Ds1307w                                          ' send address
      I2cwbyte 4                                                ' starting address in 1307
      I2cwbyte M_day                                            ' Send Data to SECONDS
      I2cwbyte M_month                                          ' MINUTES
      I2cwbyte _year                                            ' Hours
      I2cstop
    Return
    جدیدترین ویرایش توسط hamedtahamtan; ۱۶:۵۹ ۱۳۹۷/۰۹/۲۳.

    #2
    پاسخ : نمایش تاریخ اشتباه در ds1307

    اینم بگم که با سه تا ماژول جداگونه امتحان کردم اما همشون همینجوری بودن

    دیدگاه


      #3
      پاسخ : نمایش تاریخ اشتباه در ds1307

      اینم حل شد دیگه.
      متغییر اشتباهی رو مقدار دهی میکردم.
      فقط یه موردی.
      من فکر میکردم تاریخ رو که تنظیم کنیم خودش روز هفته رو درست میکنه، اما اینطور که معلومه باید دستی مقداردهی بشه
      جدیدترین ویرایش توسط hamedtahamtan; ۲۱:۵۱ ۱۳۹۷/۰۹/۲۳.

      دیدگاه

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