ايران ويج

نسخه‌ی کامل: آی سی DS1307
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2
سلام دوستان
کسی با آی سی DS1307 کار کرده؟؟؟

آی سی ساعته که میتونه ساعت و تاریخ را تا 10 سال دیگه حساب کنه وذخیره کنه

تا وقتی تغذیه میکرو وصله درست کار میکنه اما وقتی تغذیه قطع و دوباره وصل میشه به جای نمایش زمان حال زمان اولیه تعریف شده در برنامه را نشون میده!!!

ممکنه مشکل از سخت افزار باشه یا سورس مشکل داره؟؟؟
نه مشکل از سخت افزار نیست شما باید اطلاعات در مورد تایخ ساخت داخل حافظه میکرو ذخیره کنید تازه اگه ریست بشه چند مدتی که خاموش بوده رو حساب نم کنه و از تاریخ ذخیره شروع به کار می کنه بهتر از یک باطری کوچک جهت حفظ زمان استفاده کنی لازم نیست lcd یا سون سگمنت کارکنه فقط میکزو روشن باشه و زمان محاسبه کنه
فکر کنم باتری بک آپ برای 1307 باشه کافیه ، چون میکرو که نمیشماره ، 1307 هست که میشماره و تایم میندازه
در طول برنامه بعد از قطع برق دوباره باید میکرو اطلاعات رو از حافظه 1307 بکشه بیرون
رضا جان درست میگه من با این ic کار نکردم
ولتاژ بک آپ به آی سی وصله ولی این مشکل را داره!!!!!!!
شماتیک مدارو بزار

شماتیک و برنامه مدار را گذاشتم
ممنون از لطفتون

مهندس این ساختی .....یا فقط توی پرتوس شبیه سازی کردی
درسته .وقتی میکرو ریست یا خاموش بشه و بعد روشن بشه دوباره ساعت 12:00 رو نشون میده
سخت افزار مشکلی نداره
مشکل از نرم افزاره
وقتی یه بار 1307 رو برنامه ریزی کردین ، میکرو خاموش یا ریست میشه
بعد از روشن شدن به بردار وقفه ریست میره یعنی آدرس 0
پس دوباره برنامه از اول شروع به برنامه ریزی 1307میکنه
قبل از تابع while توجه کنید:
کد:
rtc_init(0,0,0);
rtc_set_time(12,0,0);
    
while (1){
پس وقتی میکرو دوباره روشن میشه قبل از تابع while دوباره 1307 رو روی 12:00 ست کردین
پس چه جوری برای بار اول به ساعت مقدار اولیه بدم ولی با این مشکل مواجه نشم؟؟؟
هر چی فکر کردم راهی به ذهنم نرسید جر اینکه اول برنامه یه بیت توی E2PROM تعریف کنی
اول برنامه چک بشه که اگر این چک بیت 0 باشه یعنی 1307 مقدار دهی اولیه نشده
در صورتی که 1 باشه ِیعنی شده و نیاز به مقدار دهی دوباره نداره
بعد از برق رفتن هم میاد اول برنامه این چک بیت رو تست میکنه و وقتی 1 باشه میره به while
صفحه‌ها: 1 2