امتیاز موضوع:
  • 0 رأی - میانگین امتیازات: 0
  • 1
  • 2
  • 3
  • 4
  • 5
درخواست کمک برای گرفتن زمان واقعی
نویسنده پیام
sinastar آفلاین
كاربر دو ستاره
**

ارسال‌ها: 189
موضوع‌ها: 48
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 155
( 66 تشکر در 48 ارسال )
ارسال: #1
درخواست کمک برای گرفتن زمان واقعی
با سلام

دوستان عزیز من یک مداری ساختم که در اون با توجه به زمان مورد نظر یکسری دستوراتی انجام میده ، حالا من موندم اینجا که چرا این زمان مورد نظر اصلا درست عمل نمیکنه !!

درضمن از کریستال 32768 هم استفاده شده و هم از دستور تایمر 2
برنامه ای که من نوشتم قطعه اصلیش رو براتون میذارم

عاجزانه خواهش می کنم کمکم کنید
CONFOG TIMER2 = TIMER , ASYNC = ON , PRESCALE = 128
CONFIG PORTD = OUTPUT
ENABLE INTERRUPTS
ENABLE TIMER2
dim sec,min,hor as integer
sec=0
min=0
hor=0
ON TIMER2 NEX
DO

if hor=1 and min=30 then portc=10
if hor = 12 and min = 20 then portc= 26
.
.
.
.
.
LOOP
END
NEX:
incr sec
if sec=59 then
sec=0
incr min
end if
if min = 59 then
min=0
incr hor
end if
if hor = 24 then
hor=0
min=0
sec=0
end if
RETURN

خلاصه برنامه اینطور هست که بعد از هر وقفه یک ثانیه ای یک مقدار به متغیر Sec افزوده شده و بعد از 60 ثانیه یک مقدار به متغیر Min و بعد از 60 دقیقه هم یک مقدار یه متغیر Hor افزوده میشه
و در ساعات مختلف دستورات مختلفی رو در حوزه Do Loop انجام میده که این دستورات تقریبا 10 خط هستند

حالا مشکل من این هست که این ساعت هر یک ساعت حدود یک ربع عقب ، جلو میشه Sad
خواهش میکنم در این مورد کمکم کنید Heart
۲۶-آذر-۱۳۹۰, ۱۸:۲۵:۲۴
ارسال‌ها
پاسخ
parviz2012 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 171
موضوع‌ها: 16
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4
( 98 تشکر در 74 ارسال )
ارسال: #2
RE: درخواست کمک برای گرفتن زمان واقعی
کریستالت رو چی ست کردی؟
اختلاف 15 دقیقه زیاده.
البته میتونی از $time استفاده کنی ولی فکر کنم چون وقفه داری استپ بشه و تتایم رو از دست بدی.
یه بار باهاش تست کن تو هلپ بیسکام ببینش.
برنامه داخل do loop رو بزار ببینیم چیه.

گمان مبر که به پایان رسیده کار جهان / هزار باده ناخورده در رگ تاک است
(آخرین ویرایش در این ارسال: ۲۶-آذر-۱۳۹۰, ۱۸:۵۰:۴۹، توسط parviz2012.)
۲۶-آذر-۱۳۹۰, ۱۸:۳۷:۱۷
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sinastar, rdscience
sinastar آفلاین
كاربر دو ستاره
**

ارسال‌ها: 189
موضوع‌ها: 48
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 155
( 66 تشکر در 48 ارسال )
ارسال: #3
RE: درخواست کمک برای گرفتن زمان واقعی
نقل قول: کریستالت رو چی ست کردی؟

دوست عزیز رشته من کامپیوتر هست و از این اصطلاحات زیاد بلد نیستم ، لطفا اگر مشکلی در این برنامه هست بهش اشاره کنید ، خواهشــــــا

نقل قول: البته میتونی از $time استفاده کنی ولی فکر کنم چون وقفه داری استپ بشه و تتایم رو از دست بدی.
یه بار باهاش تست کن تو هلپ بیسکام ببینش.

آخه اگه ازدستور Time$ استفاده کنم پس چور ساختار شرطی بذارم ؟
یعنی تو برنامه چطور بگم که فلان ساعت Portc=10 کن ؟
۲۶-آذر-۱۳۹۰, ۱۸:۵۱:۰۵
ارسال‌ها
پاسخ
parviz2012 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 171
موضوع‌ها: 16
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4
( 98 تشکر در 74 ارسال )
ارسال: #4
RE: درخواست کمک برای گرفتن زمان واقعی
اول do loop اصلی رو بزار ببینیم چیه.
ببین اگه هلپو بخونی میبینی نوشته متغیرهای min_,_hor,_sec رو میتونی برای خوندن ثانیه دقیقه ساعت استفاده کنی.
بالای برنامت crystal$ رو چی نوشتی؟

گمان مبر که به پایان رسیده کار جهان / هزار باده ناخورده در رگ تاک است
۲۶-آذر-۱۳۹۰, ۱۸:۵۶:۴۰
وب سایت ارسال‌ها
پاسخ
sinastar آفلاین
كاربر دو ستاره
**

ارسال‌ها: 189
موضوع‌ها: 48
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 155
( 66 تشکر در 48 ارسال )
ارسال: #5
RE: درخواست کمک برای گرفتن زمان واقعی
نقل قول: بالای برنامت crystal$ رو چی نوشتی؟

8000000

از مگا 8 استفاده کردم
(آخرین ویرایش در این ارسال: ۲۶-آذر-۱۳۹۰, ۱۹:۰۲:۵۳، توسط sinastar.)
۲۶-آذر-۱۳۹۰, ۱۹:۰۱:۵۳
ارسال‌ها
پاسخ
parviz2012 آفلاین
كاربر دو ستاره
**

ارسال‌ها: 171
موضوع‌ها: 16
تاریخ عضویت: آبان ۱۳۹۰

تشکرها : 4
( 98 تشکر در 74 ارسال )
ارسال: #6
RE: درخواست کمک برای گرفتن زمان واقعی
توی do loop چی نوشتی ؟
با کریتال 4مگ تست کن یا 1مگ.
به پایه های کریستال چیزی وصل کردی؟

گمان مبر که به پایان رسیده کار جهان / هزار باده ناخورده در رگ تاک است
۲۶-آذر-۱۳۹۰, ۱۹:۲۷:۳۷
وب سایت ارسال‌ها
پاسخ
reza-m آفلاین
كاربر دو ستاره
**

ارسال‌ها: 96
موضوع‌ها: 19
تاریخ عضویت: آذر ۱۳۸۷

تشکرها : 11
( 156 تشکر در 65 ارسال )
ارسال: #7
RE: درخواست کمک برای گرفتن زمان واقعی
به خاطر نویزی که در میکرو ایجاد میشه این عیب پیش میاد شما 2 تا خازن 15p به هر پایه کریستال 32768 لحیم کنید بعد سر مشترک خازن ها را هم به زمین مدارتون وصل کنید انشالله که درست میشه
۲۶-آذر-۱۳۹۰, ۱۹:۲۸:۰۸
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : rdscience
sinastar آفلاین
كاربر دو ستاره
**

ارسال‌ها: 189
موضوع‌ها: 48
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 155
( 66 تشکر در 48 ارسال )
ارسال: #8
RE: درخواست کمک برای گرفتن زمان واقعی
نقل قول: توی do loop چی نوشتی ؟

ای بابا ! بالا نوشتم دیگه !

به عنوان مثال ، مثلا میخوام ساعت 12.30 پین C.3 رو یک کنه


نقل قول: به خاطر نویزی که در میکرو ایجاد میشه این عیب پیش میاد شما 2 تا خازن 15p به هر پایه کریستال 32768 لحیم کنید بعد سر مشترک خازن ها را هم به زمین مدارتون وصل کنید انشالله که درست میشه

منظورتون خازن 15پیکو فاراد هست ؟ از نوع عدسی هست ؟ به خاطر این میپرسم که مثبت منفی داره یا نداره
دستتون درد نکنه
۲۶-آذر-۱۳۹۰, ۲۱:۰۳:۱۵
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #9
RE: درخواست کمک برای گرفتن زمان واقعی
سلام.

نقل قول: به خاطر نویزی که در میکرو ایجاد میشه این عیب پیش میاد شما 2 تا خازن 15p به هر پایه کریستال 32768 لحیم کنید بعد سر مشترک خازن ها را هم به زمین مدارتون وصل کنید انشالله که درست میشه
نقل قول: منظورتون خازن 15پیکو فاراد هست ؟ از نوع عدسی هست ؟ به خاطر این میپرسم که مثبت منفی داره یا نداره
دستتون درد نکنه

البته استفاده از خازن در دو سر كريستال به علت نويز پذيري نيست ...
در واقع اگر مدل مداري كريستال رو ببينيد ، به چند لايه ي سلفي و ... مدل شده كه قرار گرفتن اون دو خازن در دو سر كريستال باعث مي شه كه مدار كريستال كامل بشه و به كريستال درست ولتاژ اعمال بشه و ...
----------------
خازن هاي در حد پيكو فاراد الكتروليت نيستن و قطبيت ندارن ... ( عدسي )

موفق باشيد.
يا علي.

۲۶-آذر-۱۳۹۰, ۲۲:۰۲:۵۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : sinastar, rdscience
saeidjan آفلاین
كاربر دو ستاره
**

ارسال‌ها: 155
موضوع‌ها: 20
تاریخ عضویت: شهریور ۱۳۸۸

تشکرها : 117
( 164 تشکر در 77 ارسال )
ارسال: #10
RE: درخواست کمک برای گرفتن زمان واقعی
سلام دوست من
اصلا احتیاج به Timer نداری.
$regfile = "M32DEF.DAT"
$crystal = 8000000

Lcdrs Alias Pina.5 'LCD RS
Lcde Alias Pina.4 'LCD E
Lcdb4 Alias Pina.3 'LCD DB4
Lcdb5 Alias Pina.2 'LCD DB5
Lcdb6 Alias Pina.1 'LCD DB6
Lcdb7 Alias Pina.0 'LCD DB7

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Lcdrs , E = Lcde , Db4 = Lcdb4 , Db5 = Lcdb5 , Db6 = Lcdb6 , Db7 = Lcdb7
Cursor Off
Cls
Config Portb = Input
Enable Interrupts
Dim Rooz As Integer , Mah As Byte , Sal As Byte
Dim I As Byte , Endm As Byte

Config Date = Ymd , Separator = /
Config Clock = Soft , Gosub = Sectic
sec = 57 : _min = 13 : _hour = 23

Do
If _hour = 0 And _min = 0 And _sec = 0 Then .....
Loop
'=============

Sectic:
Locate 1 , 1
Lcd Time$
Return
به همین سادگی باور کن
امیدوارم بدونی که کریستال رو باید به پایه های TOSC1 & TOSC2 قرار بدی

دانشمندان امروز دانش آموزان دیروز بودند.
به امید این که فردا دانشمند باشم.
۲۶-آذر-۱۳۹۰, ۲۳:۱۴:۱۲
ارسال‌ها
پاسخ
تشکر شده توسط : sinastar, rdscience
sinastar آفلاین
كاربر دو ستاره
**

ارسال‌ها: 189
موضوع‌ها: 48
تاریخ عضویت: دى ۱۳۸۹

تشکرها : 155
( 66 تشکر در 48 ارسال )
ارسال: #11
RE: درخواست کمک برای گرفتن زمان واقعی
نقل قول: سلام دوست من
اصلا احتیاج به Timer نداری.
$regfile = "M32DEF.DAT"
$crystal = 8000000

Lcdrs Alias Pina.5 'LCD RS
Lcde Alias Pina.4 'LCD E
Lcdb4 Alias Pina.3 'LCD DB4
Lcdb5 Alias Pina.2 'LCD DB5
Lcdb6 Alias Pina.1 'LCD DB6
Lcdb7 Alias Pina.0 'LCD DB7

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Lcdrs , E = Lcde , Db4 = Lcdb4 , Db5 = Lcdb5 , Db6 = Lcdb6 , Db7 = Lcdb7
Cursor Off
Cls
Config Portb = Input
Enable Interrupts
Dim Rooz As Integer , Mah As Byte , Sal As Byte
Dim I As Byte , Endm As Byte

Config Date = Ymd , Separator = /
Config Clock = Soft , Gosub = Sectic
sec = 57 : _min = 13 : _hour = 23

Do
If _hour = 0 And _min = 0 And _sec = 0 Then .....
Loop
'=============

Sectic:
Locate 1 , 1
Lcd Time$
Return
به همین سادگی باور کن

با سلام ،
اولندش آیسی همانطور که قبلا گفتم مگا 8 هست
دومندش حالا این مقادیر sec=57 , min=13 ,..... رو بعنوان مثال گفتید دیگه ؟ چون من میخوام از صفر شروع بشن(یعنی دقیقا از 12 شب)
سومندش تو مدار ال سی دی یا سون شگمنت نیست عزیز لطفا تمام دستورات مربوط به اونو پاک کن :)

------------------------------------
نقل قول: امیدوارم بدونی که کریستال رو باید به پایه های TOSC1 & TOSC2 قرار بدی
دیگه نه به اون شوری نه به این بی نکمی !! :)) اینو میدونم و وصل کردم دوست عزیز.
------------------------------------
نقل قول: خازن هاي در حد پيكو فاراد الكتروليت نيستن و قطبيت ندارن ... ( عدسي )
با لاسم خدمت شما
خوب حالا من چی کار کنم ؟ دوتا عدسی وصل کنم یا برنامه ای که دوستم گفت رو بزنم ؟
۲۷-آذر-۱۳۹۰, ۰۰:۱۱:۰۹
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی برای یک دوست GOLDOST 1 0 ۱۵-بهمن-۱۴۰۲, ۰۰:۴۶:۵۱
آخرین ارسال: GOLDOST
  [فوری] کمک درباره نویز گرفتن میکرو avr عابد مقدسیان 8 3,322 ۱۱-بهمن-۱۳۹۷, ۲۲:۴۱:۰۶
آخرین ارسال: 1نفر
  [سوال] مشکلات نویز گرفتن میکرو کنترلر avr عابد مقدسیان 5 1,973 ۱۷-آبان-۱۳۹۷, ۱۸:۰۰:۱۸
آخرین ارسال: alimogmov
  درخواست کمک برای ساعت با فونت بزرگ sobhan6831 4 2,400 ۲۴-فروردین-۱۳۹۷, ۲۰:۱۹:۱۲
آخرین ارسال: sobhan6831
  درخواست راهنمایی منو سازی برای Atmega32 به زبان بیسیک برویglcd armin111 9 6,171 ۱۶-شهریور-۱۳۹۶, ۱۱:۳۹:۲۵
آخرین ارسال: sky_man847
  دستور delay_ms واقعی کار نمیکنه 67Sama 3 3,180 ۱۱-آبان-۱۳۹۵, ۰۰:۲۱:۳۷
آخرین ارسال: behzady
  گرفتن عدد دو رقمی و بیشتر از کیبرد goldenmasoud 14 23,650 ۲۵-دى-۱۳۹۴, ۰۱:۰۸:۲۷
آخرین ارسال: lord mohsen
  درخواست راهنمایی برای مدار آمپلی فایر sinastar 1 3,786 ۰۸-تير-۱۳۹۴, ۰۹:۰۵:۲۱
آخرین ارسال: Ambassador
Sad مشکل عجیب در برنامه اندازه گیری دما و سنجش زمان ! MicrowaveCO 2 2,762 ۱۴-خرداد-۱۳۹۴, ۱۸:۳۱:۳۲
آخرین ارسال: MicrowaveCO
  کمک در مورد سنجش زمان توسط تایمر 0 و 1 در مگا 8 و کدویژن MicrowaveCO 6 5,155 ۰۸-اردیبهشت-۱۳۹۴, ۱۵:۵۳:۰۷
آخرین ارسال: MicrowaveCO

پرش به انجمن:


کاربرانِ درحال بازدید از این موضوع: 1 مهمان

صفحه‌ی تماس | IranVig | بازگشت به بالا | | بایگانی | پیوند سایتی RSS