اطلاعیه

Collapse
No announcement yet.

مشکل با DS1307 و اینتراپت

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

    مشکل با DS1307 و اینتراپت

    با سلام خدمت اساتید محترم: :nerd:
    من ds1307 را به pic18f452 متصل کردم و همه شکل شماتیک و غیره رو هم رعایت کردم و این ای سی روی برد یه تابلو روانه که بصورت رفرشی کار میکنه و از اینتراپت تایمر صفر استفاده میکنه برای نمایش
    مشکل اینجاست که بعد از چند ثانیه خوندن و نمایش صحیح ساعت ( از 2 ثانیه گرفته تا چند دقیقه) توی پراسیجر گرفتن زمان گیر می افته و دیگه ساعت تغییر نمی کنه ولی تابلو داره درست کار رفرش و نمایشو انجام می ده.
    وقتی که اینتراپت رو توی پراسیجر خوندن ساعت از کار میندازم درست می خونه و مشکلی با ساعت ندارم ولی چون اینتراپت غیر فعاله نمایشی هم ندارم(صفحه توی پراسیجر خوندن برای نیم ثانیه خاموش میشه)
    می خوام بدونم که می شه این مشکل رو حذف کرد یا نه؟ :question:که هم رفرش رو داشته باشم با اینتراپت و هم سا عتو درست بخونم؟

    اینم پراسیجر گرفتن زمانه:
    sub function rtc_read(dim adr as byte)as byte
    dim data,ackbit as byte
    INTCON=%00100000
    while i2c_start() wend
    while i2c_wr(0xd0) wend
    while i2c_wr(adr) wend
    I2C_Repeated_Start()
    while i2c_wr(0xd1) wend
    data=i2c_rd(0)
    i2c_stop()
    INTCON=%10100000
    result=data

    end sub
    (تقریبا تمامی پست های مربوط به ds رو خوندم ها)
    ممنون

    [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

    #2
    پاسخ : مشکل با DS1307 و اینتراپت

    نوشته اصلی توسط abbasmh
    با سلام خدمت اساتید محترم: :nerd:
    من ds1307 را به pic18f452 متصل کردم و همه شکل شماتیک و غیره رو هم رعایت کردم و این ای سی روی برد یه تابلو روانه که بصورت رفرشی کار میکنه و از اینتراپت تایمر صفر استفاده میکنه برای نمایش
    مشکل اینجاست که بعد از چند ثانیه خوندن و نمایش صحیح ساعت ( از 2 ثانیه گرفته تا چند دقیقه) توی پراسیجر گرفتن زمان گیر می افته و دیگه ساعت تغییر نمی کنه ولی تابلو داره درست کار رفرش و نمایشو انجام می ده.
    وقتی که اینتراپت رو توی پراسیجر خوندن ساعت از کار میندازم درست می خونه و مشکلی با ساعت ندارم ولی چون اینتراپت غیر فعاله نمایشی هم ندارم(صفحه توی پراسیجر خوندن برای نیم ثانیه خاموش میشه)
    می خوام بدونم که می شه این مشکل رو حذف کرد یا نه؟ :question:که هم رفرش رو داشته باشم با اینتراپت و هم سا عتو درست بخونم؟

    اینم پراسیجر گرفتن زمانه:
    sub function rtc_read(dim adr as byte)as byte
    dim data,ackbit as byte
    INTCON=%00100000
    while i2c_start() wend
    while i2c_wr(0xd0) wend
    while i2c_wr(adr) wend
    I2C_Repeated_Start()
    while i2c_wr(0xd1) wend

    data=i2c_rd(0)
    i2c_stop()
    INTCON=%10100000
    result=data

    end sub
    (تقریبا تمامی پست های مربوط به ds رو خوندم ها)
    ممنون
    با سلام
    این حلقه های while که قرمز شده اند برای چی استفاده شده است ؟

    گشتی در لاله زار
    http://www.eca.ir/forum2/index.php?topic=76138.0

    http://www.eca.ir/forum2/index.php?topic=76141

    دیدگاه


      #3
      پاسخ : مشکل با DS1307 و اینتراپت

      اون دستورایی که توی while هستند بصورت فانکشن هستند و اگر دیتا درست ارسال بشه 1 و اگر مشکلی پیش بیاد 0 بر میگردونن.این حلقه ها برای اطمینان از درستی ارسال هستند.

      [glow=black,2,300]بردی جالب با سیستم عاملی جالب !!![/glow]

      دیدگاه

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