نه ! همون جلو میزنه
تقریبا هر 7 ساعت 1 ثانیه
خوب بیایم یکم مدار را کوچیک کنیم ، فرض می کنیم که 1307 فقط با باتری کار می کنه و مدار هیچ وقت توی برق نیست ، حالا به نظرتون مشکل از کجاست ؟ 1307 ؟ کریستال ؟ آیا خازن برای کریستال ها باید قرار بدم یا نه ؟!!! چون یک سری از دوستان گفتن خازن لازم داره و یکسری از دوستان گفتن لازم نداره !
نه ! همون جلو میزنه
تقریبا هر 7 ساعت 1 ثانیه
خوب بیایم یکم مدار را کوچیک کنیم ، فرض می کنیم که 1307 فقط با باتری کار می کنه و مدار هیچ وقت توی برق نیست ، حالا به نظرتون مشکل از کجاست ؟ 1307 ؟ کریستال ؟ آیا خازن برای کریستال ها باید قرار بدم یا نه ؟!!! چون یک سری از دوستان گفتن خازن لازم داره و یکسری از دوستان گفتن لازم نداره !
والا روی برد برد هستی . خازن هم که نزاشتی. کریستالتم که لابد چینیه! توی این فرکانسها 32736 هرتز دقت هم میخاید
خازن رو برای باتری و تغذیه آیسی که دارم اما برای کریستال نه ! برای کریستال هم خازن قرار بدم ؟
خوب برای تست دارم با بردبرد کار می کنم ، مگه برای اینکه یک مدار را بخوایم تست کنیم نباید از بردبرد استفاده کنیم ؟ کریستال را از فروشگاه معتبر خریدم ! حالا اینکه چینی هست یا نه رو نمیدونم !
نه ! همون جلو میزنه
تقریبا هر 7 ساعت 1 ثانیه
خوب بیایم یکم مدار را کوچیک کنیم ، فرض می کنیم که 1307 فقط با باتری کار می کنه و مدار هیچ وقت توی برق نیست ، حالا به نظرتون مشکل از کجاست ؟ 1307 ؟ کریستال ؟ آیا خازن برای کریستال ها باید قرار بدم یا نه ؟!!! چون یک سری از دوستان گفتن خازن لازم داره و یکسری از دوستان گفتن لازم نداره !
دوست عزیز داخل این پست:
http://www.eca.ir/forum2/index.php?topic=69414.msg411283#msg411283
توضیحات مبسوطی در مورد دلایل احتمالی دادم و این جا هم:
http://www.eca.ir/forum2/index.php?topic=69414.msg411591#msg411591
دلیل اصلیش رو بهتون گفتم.
فقط یک مورد دیگه مونده که کمتر از 10% احتمال میدم مشکل شما از این باشه:
بدنه کریستال ساعت باید زمین بشه، داخل دیتاشیت هم دقیقا ذکر شده (شما که با برد برد میبندی میتونی با یک سیم کریستال رو مهار و به زمین وصل کنی)
با همه این تفاسیر توصیه می کنم اگر تهران تشریف دارید یک سر به جمهوری بزنید و یک کریستال با دقت بالا(روشون نوشته 32768.000) بگیرید و خودتون رو خلاص کنید از این ماجرای مطلول!!
این مواردی هم که خدمتتون عرض کردم هم علمیه(مرجع دیتاشیت DS) و هم به صورت تجربی(طی چند محصول تجاری سازی شده) کاملا تست وتایید شده
در ضمن کریستال ساعت نیازی به خازن نداره
موفق باشی
اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!
نیکلاس یه نظر. مدارت رو روی بورد سوراخ دار ببند ببین درست میشه. بعید می دونم اما یه امتحان بکن به امتحانش می ارزه. من تو یه مدار دیگه دقیقا همینجوری شدم.
مرسی
اما تهران نیستم ! میشه لطف کنید و یک فروشگاه معتبر و درست حسابی را معرفی کنید که هم 1307 درست حسابی داشته باشه هم این مدل کریستال ساعتی که میگین و البته تلفنی یا اینترنتی هم بشه ازش خرید کرد و ارسال کنه ، آخه اینجا همچین چیزی نیست ، من از یک فروشگاه دیگه هم کریستال خریدم ، باز هم جلو میزنه ، جالبه که باز هم تقریبا هر7 ساعت 1 ثانیه جلو میزنه !
فقط یک مورد دیگه مونده که کمتر از 10% احتمال میدم مشکل شما از این باشه:
بدنه کریستال ساعت باید زمین بشه، داخل دیتاشیت هم دقیقا ذکر شده (شما که با برد برد میبندی میتونی با یک سیم کریستال رو مهار و به زمین وصل کنی)
سلام دوستان
من چند تا برد داشتم که کریستالشون به زمین وصل شده بود. :read:
نوشته اصلی توسط Nicolas1390
میشه لطف کنید و یک فروشگاه معتبر و درست حسابی را معرفی کنید که هم 1307 درست حسابی داشته باشه
ایران میکرو.من تا بحال زیاد ازش خرید کردم.حد اکثر 4 روزه میفرسته.
لینک خریدش
http://iran-micro.com/product_info.php/products_id/6086
دوستان من مدار رو ساختم روزی 10 دقیقه جلو میزنه.oo:
چرا؟ :angry:
ابتدا و شروع هرکاری سخت ترین مرحله آن کار است. برای مثال به عقابها نگاه کن ، حتی اونها هم در ابتدای پرواز ، زیاد بال و پر می زنند، اما هنگامی که اوج می گیرند ، دیگر حتی نیازی به پر زدن هم ندارند ...
کافیست اولین قدمها را بدون ترس و با پشتکارِ بالا برداری مطمئن باش بزودی به اوج خواهی رسید و روزهای سخت همیشه نخواهند ماند ...
من هنوز موفق نشدم یک کریستال درست حسابی تهیه کنم ، اما تا اون زمان که کریستال پیدا کنم ، نمیشه کلک رشتی بزنیم ؟ :mrgreen:
برنامه میکرو رو کمی تغییر بدیم که هر زمانی که کاربر ساعت 1307 را ست می کنه ، قبل از اینکه ساعت 1307 را داخل برنامه ست کنیم ، بیایم ساعت فعلی رو بخونیم و با این ساعت جدید مقایسه کنیم ، ببینیم توی چند ساعت(یا دقیقه ، یا روز یا ماه یا ...) یک ثانیه جلو یا عقب میزنه و اون را داخل یک متغیر بریزیم و داخل خود 1307 ذخیره کنیم، ساعت و تاریخ ست شدن 1307 را هم داخل خود 1307 ذخیره کنیم تا بتونیم بفهمیم 1307 چه مدت کار کرده ، از این به بعد ، هر n ساعت ، ساعت 1307 را یک ثانیه جلو یا عقب بزنیم ! و در دفعات بعدی که کاربر بخواد ساعت را ست کنه هم این کار را انجام بدیم.
البته مشکل من که همون کریستال خواهد بود ، یا خود آیسی ، یا هم که بخاطر برد بورد ! :mrgreen: اما فکر کنم اگه همه چی کامل درست هم باشه ، باز هم ساعت حداقل هفته ای یک ثانیه جلو بزنه ! حالا به نظرتون این روش کاربرد داره ؟
ایدتون رو کامل متوجه نشدم
اما خب بعضیا هم میان و با تست متوجه میشن با این کریستال مثلا در روز 5ثانیه جلو میفته، بنابراین میان و در ساعت مثلا 1 بامداد هر روز، ساعت رو 5ثانیه میکشن عقب تا جبران بشه
اون روشی که گفتم رو تست کردید؟
ساعت رو ست کنید(ترجیحا با اخبار تلویزیون مثلا ساعت14 شبکه یک :mrgreen، بعدش بذارید مدار فقط با باتری و DS و بدون میکرو، حداقل 24ساعت کار کنه(تو 7ساعت یک ثانیه، زیاد اعتماد پذیر نیست!) بعدش ببینید چقدر عقب-جلو افتاده، اینطوری دقت کریستالتون مشخص میشه
اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!
ساعت 1307 به هر حال توسط یک نفر ست میشه ، میگم قبل از اینکه ساعت جدید رو روی 1307 ست کنیم(داخل برنامه میکرو) ، ساعت فعلیش رو بخونیم و ببینیم توی چند ساعت 1 ثانیه جلو یا عقب زده ؟، و بر اساس اون مقدار ساعت ، برنامه میکرو ، زمان را یک ثانیه عقب یا جلو ببره .
مثلا الان ساعت 1307 هست 1950 ، کاربر میخواد ساعت 1307 را درست کنه و اون رو 20:00:00 قرار بده ، بین این دو زمان 10 ثانیه اختلاف هست ، پس یعنی 1307 ، 10 ثانیه عقب زده ، اگر آخرین باری که 1307 ست شده امروز ساعت 10:00:00 باشه ، پس یعنی توی 10 ساعت 10 ثانیه عقب زده یعنی هر 1 ساعت 1 ثانیه ، پس برنامه از این به بعد هر 1 ساعت 1 ثانیه زمان 1307 را باید جلو بکشه.
حالا میشه خودمون برای تست دفعه اول ساعت را ست کنیم و مثلا 24 ساعت بعد دوباره ساعت را ست کنیم تا برنامه اون مقدار اختلاف را بدست بیاره.
بعد از اون هم هربار کاربر ساعت را ست کنه ، مثلا بعد از 3 ماه ! برنامه اون اختلافش را ذخیره می کنه و بر اساس اون اختلاف ، ساعت را عقب یا جلو میبره.
آره این آخری همینی که گفتید رو تست کردم و فقط با باتری کار می کنه ، اما توی زمان های کوتاه ، حالا 24 ساعت یا بیشتر تست می کنم ببینم چی میشه
آهان
پس خود برنامه نمیتونه تشخیص بده چند ساعت دقیقا گذشته، مگر این که ما یک قرارداد داشته باشیم برای خودمون، مثلا الان ساعت رو ست کنیم، 24ساعت دیگه هم ست کنیم، اگر اینطوری باشه بله این راه هم میشه، اما دردسرش هم بیشتره دیگه :redface:، حتما باید فیکس 24ساعت بگذره مثلا و...
حالا واقعا این همه دقت نیازه؟ بیا و آخر روز ساعت رو 5ثانیه بکش عقب، این دقت کافی نیست؟! :rolleyes:
اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!
نه نه ، اشتباه متوجه شدید ...
هر زمان که برنامه ساعت 1307 را ست می کنه ، توی حافظه خود 1307 (یعنی داخل حافظه مانای 1307)، تاریخ و ساعت همون لحظه را هم ذخیره می کنه ، و برنامه بر اساس اون تاریخ و ساعت ، مدت زمانی که 1307 کار می کرده را بدست میاره ، بعد میتونه بفهمه که هر چند ساعت 1307 یک ثانیه جابجا میشه
نه نه ، اشتباه متوجه شدید ...
هر زمان که برنامه ساعت 1307 را ست می کنه ، توی حافظه خود 1307 (یعنی داخل حافظه مانای 1307)، تاریخ و ساعت همون لحظه را هم ذخیره می کنه ، و برنامه بر اساس اون تاریخ و ساعت ، مدت زمانی که 1307 کار می کرده را بدست میاره ، بعد میتونه بفهمه که هر چند ساعت 1307 یک ثانیه جابجا میشه
خب اون DS باید نسبت به یک مرجع صحیح بسنجه تا بتونه بفهمه چقدر اختلاف داره، اگر خودش خطا داشته باشه چطور میتونه این کارو بکنه؟!
فرض کنید ساعت فعلی ds روی 14:55 هستش
من میام و روی 15:00 ستش می کنم، طبق گفته شما مقدار 14:55 روی رم ds ذخیره میشه، فردا راس 15:00 دوباره میام و ds رو روی یک ساعتی ست می کنم، حالا میکرو با مقایسه تاریخ ذخیره شده قبلی روی ds و مقدار فعلی میفهمه که 24ساعت زمان سپری شده(اونم با تایم ds که ممکنه مثلا 10ثانیه خطا ایجاد کرده باشه)، اما از نظر میکرو فیکس 24ساعت(86400ثانیه) گذشته، حالا میکرو چطور بفهمه که توی این 24ساعت چه مقدار خطا داشته این ds?!!
اونچیزی که در دانشگاه یاد میگیرید، "الفبایی" هست برای نوشتن یک "رمان" !!
کسی که ساعت رو تنظیم می کنه یعنی ساعت دقیق را میدونه دیگه و چون ساعت مدار خطا داشته، داره دوباره ساعت را تنظیم می کنه !
کل ماجرا اینه :
۱ - اولین باری که ساعت ست میشه مثلا 08:00:00 - میکرو تاریخ و ساعت را توی حافظه 1307 ذخیره می کنه یعنی تاریخ امروز و ساعت 08:00:00 توی حافظه ذخیره میشه . ساعت 1307 هم دقیقا میشه 08:00:00
۲ - فردا (توی مثال گفتم فردا ،اما میتونه یک هفته بعد یا یک ماه بعد یا یک سال بعد یا ...) ، ساعت 08:00:00، ِمن میبینم که مثلا ساعت 1307 جلو زده و شده 08:00:24 و می خوام که ساعتش را دوباره تنظیم کنم . پس میام ساعت 1307 را برابر با 08:00:00 قرار میدم ، اما قبل از انجام این کار ، برنامه میاد ساعت فعلی 1307 را که در اینجا 08:00:24 هست را با ساعتی که کاربر وارد کرده که در اینجا 08:00:00 هست را مقایسه می کنه و میبینه 24 ثانیه تفاوت دارن ، تاریخ و ساعتی که توی حافظه 1307ذخیره شده بود مال دیروز ساعت 08:00:00 بود ،اون رابا تاریخ و ساعت امروز که کاربر وارد کرده مقایسه می کنه که میشه 24 ساعت اختلاف ، یعنی از دفعه قبلی که 1307 ست شده تا الان که کاربر میخواد 1307 را ست کنه ، 24 ساعت گذشته ! پس یعنی هر ساعت ۱ ثانیه جلو میزنه.این مقدار را توی حافظه 1307 ذخیره می کنه . همچنین تاریخ و ساعت وارد شده توسط کاربر را روی 1307 ست می کنه و اون رو توی حافظه 1307 هم ذخیره می کنه تا دفعه بعد که کاربر میخواد دوباره 1307 را ست کنه ، برنامه تاریخ سری قبل را داشته باشه و بتونه بفهمه که 1307 از آخرین باری که ساعتش تنظیم شده ، چند ساعت کار کرده
3 - حالا میکرو فهمیده که هر 1 ساعت 1307، ۱ ثانیه جلو میزنه ، پس خود میکرو هر ۱ ساعت ۱ ثانیه زمان را میکشه عقب.
دیدگاه