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

ارسال‌ها: 143
موضوع‌ها: 62
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 108
( 101 تشکر در 52 ارسال )
ارسال: #1
مشکل در TIMER 2 میکرو
دوستان من برای فعال کردن یک خروجی در یک زمان ،از تایمر میکرو استفاده کردم و برنامشو نوشتم .برنامه رو که بصورت جداگانه شبیه سازی میکنم تو پرتئوس هیچ موردی نداره ولی وقتی تو عمل پیادش میکنم بعضی مواقع کار نمیکنه بعضی مواقع که هم کار میکنه اصلا دقیق نیست .مثلا دستور دادم 5 ثانیه دیگه یه پین رو فعال کن نیم ساعت دیگه اینکارو انجام میده .یا دستور دادم که 15 ثانیه بعد پین رو غیر فعال کن 1 ساعته دیگه این کارو انجام میده .این برناممه .ممنونم دوستان راهنمایی کنند.
Config Timer2 = Timer , Async = ON , Prescale = 128
Enable Interrupts
Enable Timer2
On Timer2 mohammad
: Dim S As Byte , M As Byte , H As Byte , T As Byte
H = 23 : M = 58 : S = 0


Start Timer2

If H = 23 And M = 58 And S = 30 Then

Set Portb.4

Else
If H = 23 And M = 58 And S = 50 Then

Reset Portb.4

mohammad:
Incr S
If S > 59 Then
S = 0 : Incr M
End If
If M > 59 Then
M = 0 : Incr H
End If
If H > 23 Then
H = 1
End If
Return
یه مشکلی هم که هست تایمر 0 و 1 هم همین مشکلو دارنند
۱۲-خرداد-۱۳۹۱, ۲۳:۲۳:۵۸
ارسال‌ها
پاسخ
EBKA آفلاین
مخترع
****

ارسال‌ها: 1,099
موضوع‌ها: 89
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 1655
( 2792 تشکر در 982 ارسال )
ارسال: #2
RE: مشکل در TIMER 2 میکرو
(۱۲-خرداد-۱۳۹۱, ۲۳:۲۳:۵۸)علیدلی نوشته است: دوستان من برای فعال کردن یک خروجی در یک زمان ،از تایمر میکرو استفاده کردم و برنامشو نوشتم .برنامه رو که بصورت جداگانه شبیه سازی میکنم تو پرتئوس هیچ موردی نداره ولی وقتی تو عمل پیادش میکنم بعضی مواقع کار نمیکنه بعضی مواقع که هم کار میکنه اصلا دقیق نیست .مثلا دستور دادم 5 ثانیه دیگه یه پین رو فعال کن نیم ساعت دیگه اینکارو انجام میده .یا دستور دادم که 15 ثانیه بعد پین رو غیر فعال کن 1 ساعته دیگه این کارو انجام میده .این برناممه .ممنونم دوستان راهنمایی کنند.
Config Timer2 = Timer , Async = ON , Prescale = 128
Enable Interrupts
Enable Timer2
On Timer2 mohammad
: Dim S As Byte , M As Byte , H As Byte , T As Byte
H = 23 : M = 58 : S = 0


Start Timer2

If H = 23 And M = 58 And S = 30 Then

Set Portb.4

Else
If H = 23 And M = 58 And S = 50 Then

Reset Portb.4

mohammad:
Incr S
If S > 59 Then
S = 0 : Incr M
End If
If M > 59 Then
M = 0 : Incr H
End If
If H > 23 Then
H = 1
End If
Return
یه مشکلی هم که هست تایمر 0 و 1 هم همین مشکلو دارنند
سلام...
شما دستورات شرطی رو توی زیز برنامه mohammad بزار درست میشه


ابراهیم خوانین زاده
 ساعت کار بدن انسان بیشتر وقتها, کمتر از 657.000 ساعت است و بعد از آن از کار می افتد  :():کمی فکر کنیم.....

259-734

[/url]
وبلاگ من


وب سایت من
[url=http://www.ebka-intelligent.com/]
آموزش کار با rfm12b,آموزش کامل ای سی ds1307, آموزش اتصال ماژول em18,سنسور رنگ ,سنسور گاز, و ... در وبلاگ من خواهید دید



۱۳-خرداد-۱۳۹۱, ۰۰:۴۳:۵۶
وب سایت ارسال‌ها
پاسخ
علیدلی آفلاین
كاربر دو ستاره
**

ارسال‌ها: 143
موضوع‌ها: 62
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 108
( 101 تشکر در 52 ارسال )
ارسال: #3
RE: مشکل در TIMER 2 میکرو
[/align]
سلام دوست عزیز
ممنومن از راهنمایی که کردید.
من تغییرات رو دادم .و برنامه رو با تایمر0 نوشتم .مشکلی که الان داره دقیق نیست .مثلا باید 5 ثانیه بعد پین فعال بشه .90ثانیه بعد فعال میشه ...
باید 15 ثانیه بعد پین غیر فعال بشه 100 ثانیه بعد غیر فعال میشه

برا مدارم از کریستال خارجی استفاده نکردم وکریستال داخلی رو روی 1MHZ گذاشتم

ممنونم در این زمینه راهنمایی بفرماید.
هدف از این برنامه فعال کردن 1 پین،، هر روز میباشد که به مدت مثلا 30 دقیقه فعال بشه و بعد از 30 دقیقه غیر فعال بشه .
Config Timer0 = Timer , Prescale = 1024

Enable Interrupts
On Ovf0 Label
Enable Timer0
Start Timer0

Dim S As Byte , M As Byte , H As Byte , T As Byte
H = 23 : M = 59 : S = 10


Label:

Incr T
If T > 35 Then
Incr S
If S > 59 Then
S = 0 : Incr M
End If
If M > 59 Then
M = 0 : Incr H
End If
If H > 23 Then
H = 1
End If
T = 0
End If
Timer2 = 0

If H = 23 And M = 59 And S = 20 Then

Set Portb.4

Else

If H = 23 And M = 59 And S = 30 Then


Reset Portb.4
End If
End If
Return
(آخرین ویرایش در این ارسال: ۱۳-خرداد-۱۳۹۱, ۰۱:۳۲:۴۰، توسط علیدلی.)
۱۳-خرداد-۱۳۹۱, ۰۱:۲۷:۴۲
ارسال‌ها
پاسخ
majid_avr آفلاین
كاربر تک ستاره
*

ارسال‌ها: 50
موضوع‌ها: 11
تاریخ عضویت: آبان ۱۳۸۹

تشکرها : 39
( 22 تشکر در 14 ارسال )
ارسال: #4
RE: مشکل در TIMER 2 میکرو
سلام
هر دو برنامه مشکل دارن
اینو امتحان کن

کد:
crystal=1000000
Config Timer0 = Timer ,  Prescale = 64
Enable Interrupts
Enable Timer0
On Timer0 mohammad
Dim S As Byte , M As Byte , H As Byte , x as byte
H = 23 : M = 58 : S = 0


Start Timer0
main :
do
If H = 23 And M = 58 And S = 30 Then Set Portb.4

If H = 23 And M = 58 And S = 50 Then Reset Portb.4
loop
end

mohammad:

stop timer0
incr x
if x=61 then
Incr S
If S > 59 Then
S = 0 : Incr M
End If
If M > 59 Then
M = 0 : Incr H
End If
If H > 23 Then
H = 0
End If
x = 0
end if
timer0=0
strart timer0
Return

عصر ما ...
عصر ما عصر فریبه ،عصر اسم های غریبه ...
عصر پژمردن گلدون،چترای سیاه تو بارون...
(آخرین ویرایش در این ارسال: ۱۳-خرداد-۱۳۹۱, ۰۴:۱۲:۱۱، توسط majid_avr.)
۱۳-خرداد-۱۳۹۱, ۰۳:۴۴:۵۶
ارسال‌ها
پاسخ
eai آفلاین
كاربر دو ستاره
**

ارسال‌ها: 194
موضوع‌ها: 29
تاریخ عضویت: آذر ۱۳۸۸

تشکرها : 302
( 119 تشکر در 67 ارسال )
ارسال: #5
RE: مشکل در TIMER 2 میکرو
فیوز بیت هارو چک کن ببین کریستالی که تنظیم کردی با کریستال میکرو هماهنگی داره (این مشکل پیش پا افتاده زیاد واسه من پیش اومده و کلی وقتم رو گرفته ، اینو می گم چون گفتید تو پروتوس درست کار می کنه ولی رو برد نه پس احتمال داره مشکل از فیوز بیت ها باشه)
ببین تایمر 0 با این prescale که تو انتخاب کردی( 1024) و با فرکانس کاری 1000000 یعنی تایمر با فرکانس حدود 977 کار می کنه
فرکانس تایمر = Crystal / prescale
این یعنی تو 1 ثانیه حدود 4 بار تایمر 0 سر ریز می کنه ( یعنی تو هر ثانیه 4 بار به زیر برنامه پرش می کنه)
اگه تایمر 1 ثانیه می خوای از یه تایمر 16 بیتی (تایمر 1 که تا 65535 می شماره بعد سر ریز می کنه) استفاده کن
بعد اگه بخوای از همین prescale و کریستال استفاده کنی اگر مقدار اولیه تایمر رو روی 64558 ( 65535-977) بزاری حدود 1 ثانیه بعد از شروع پرش می کنه و هر سری برای 0 کردن تایمر هم باید به جای 0 از همین 64558 استفاده کنی

بنابر گفته هام من برنامت رو به شکل زیر تغییر میدم ببین کار می کنه
کد:
Config Timer1 = Timer , Prescale = 1024

Enable Interrupts
On Ovf1 Label
Enable Timer1
Enable Ovf1
Start Timer1
Timer1=64558     'first value

Dim S As Byte , M As Byte , H As Byte , T As Byte
H = 23 : M = 59 : S = 10


Label:

Incr T
If T > 35 Then
Incr S
If S > 59 Then
S = 0 : Incr M
End If
If M > 59 Then
M = 0 : Incr H
End If
If H > 23 Then
H = 1
End If
T = 0
End If
Timer1 = 64558    'first value

If H = 23 And M = 59 And S = 20 Then

Set Portb.4

Else

If H = 23 And M = 59 And S = 30 Then


Reset Portb.4
End If
End If
Return

این جوری برنامه هر 1 ثانیه به زیر برنامه پرش می کنه ( وقفه تایمر 1 ovf1 هست)
یه برنامه هم هست که خودم قبلا درست کردم
مقدار کریستال
مقدار prescale
زمان مورد نیاز (به ثانیه)
رو بهش می دی و بعد کنار دکمه Get در مقابل First کلیلک می کنی تا بحت مقدار اولیه ای که باید به تایمر بدی رو بگه (عدد 65535 که کنار first هست همون مقدار حد اکثریه که تایمر می شماره در اینجا پیشفرض 65535 قرار داده شده که برای تایمر 1 هست یعنی اگه خواستی از تایمر 0 استفاده کنی باید اون رو 255 بزاری)


فایل‌(های) پیوست شده
.zip   TimertoClock.zip (اندازه: 7.64 KB / تعداد دفعات دریافت: 63)
(آخرین ویرایش در این ارسال: ۱۴-خرداد-۱۳۹۱, ۲۲:۰۷:۱۶، توسط eai.)
۱۴-خرداد-۱۳۹۱, ۲۱:۳۵:۲۲
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : علیدلی
majid_avr آفلاین
كاربر تک ستاره
*

ارسال‌ها: 50
موضوع‌ها: 11
تاریخ عضویت: آبان ۱۳۸۹

تشکرها : 39
( 22 تشکر در 14 ارسال )
ارسال: #6
RE: مشکل در TIMER 2 میکرو
این برنامه مشکل داره و جواب لازمه رو نمیده !
چون زیربرنامه وقفه تایمر به موقع سرریز نمیشه ( بعد از مقدار گرفتن از متغیرها بلافاصله زیربرنامه اجرا میشه) و چند نکته که رعایت نشده
اینم کد اصلاح شدش
کد:
Config Timer1 = Timer , Prescale = 1024

Enable Interrupts
On Ovf1 Label
Enable Timer1
Enable Ovf1
Timer1=64558 'first value
Start Timer1
Dim S As Byte , M As Byte , H As Byte , T As Byte
H = 23 : M = 59 : S = 10

do

loop
end

Label:
stop timer1
Incr T
If T > 35 Then
Incr S
If S > 59 Then
S = 0 : Incr M
End If
If M > 59 Then
M = 0 : Incr H
End If
If H > 23 Then
H = 1
End If
T = 0
End If
Timer1 = 64558 'first value
start timer1
If H = 23 And M = 59 And S = 20 Then

Set Portb.4

Else

If H = 23 And M = 59 And S = 30 Then


Reset Portb.4
End If
End If
Return

عصر ما ...
عصر ما عصر فریبه ،عصر اسم های غریبه ...
عصر پژمردن گلدون،چترای سیاه تو بارون...
(آخرین ویرایش در این ارسال: ۱۵-خرداد-۱۳۹۱, ۰۲:۲۱:۳۸، توسط majid_avr.)
۱۵-خرداد-۱۳۹۱, ۰۲:۱۵:۳۲
ارسال‌ها
پاسخ
تشکر شده توسط : علیدلی
علیدلی آفلاین
كاربر دو ستاره
**

ارسال‌ها: 143
موضوع‌ها: 62
تاریخ عضویت: مرداد ۱۳۹۰

تشکرها : 108
( 101 تشکر در 52 ارسال )
ارسال: #7
RE: مشکل در TIMER 2 میکرو
از تمامی دوستان متشکرم مشکل بر طرف شد .
۱۵-خرداد-۱۳۹۱, ۱۰:۳۶:۴۸
ارسال‌ها
پاسخ
تشکر شده توسط : eai, majid_avr
Ambassador آفلاین
مدیر بخش موبایل
*****

ارسال‌ها: 1,324
موضوع‌ها: 79
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 30371
( 9873 تشکر در 3843 ارسال )
ارسال: #8
RE: مشکل در TIMER 2 میکرو
سلام به دوستان

من هر چند وقت یه بار با این تایمر دعوام میشه.

می خوام به ازای هر یک ثانیه یه پین صفر و یک بشه
شبیه سازی درست اما در عمل خیر. کریستال هم گزاشتم

کد:
$regfile = "m8def.dat"
$crystal = 1000000

Config Timer2 = Timer , Async = On , Prescale = 128
Dim Secend1 As Word , A As Byte , Trac1 As Byte , Trac2 As Byte , Trac3 As Byte
Dim Trac4 As Byte , X As Byte , Cont As Byte

Enable Interrupts
Enable Timer2


On Timer2 Secen
'Enable Timer2
Start Timer2

Cont = 200
Config Portd.7 = Output

Portd.7 = 0
Main:
Portb.1 = 1
Waitms Cont
Portb.1 = 0
  Waitms Cont

Goto Main
End                                                         'end program

Secen:
Incr Secend1
Portd.7 = 1
Waitms 100
  Portd.7 = 0
Return

START...

۲۶-تير-۱۳۹۳, ۱۹:۱۷:۳۹
ارسال‌ها
پاسخ
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #9
RE: مشکل در TIMER 2 میکرو
(۲۶-تير-۱۳۹۳, ۱۹:۱۷:۳۹)Ambassador نوشته است: سلام به دوستان

من هر چند وقت یه بار با این تایمر دعوام میشه.

می خوام به ازای هر یک ثانیه یه پین صفر و یک بشه
شبیه سازی درست اما در عمل خیر. کریستال هم گزاشتم

سلام
چه کریستالی گذاشتی واسش؟
خازن های دوسر کریستال ضرفیت شون چقدره؟

۲۶-تير-۱۳۹۳, ۲۲:۴۸:۰۱
ارسال‌ها
پاسخ
تشکر شده توسط : babyy, Ambassador
Ambassador آفلاین
مدیر بخش موبایل
*****

ارسال‌ها: 1,324
موضوع‌ها: 79
تاریخ عضویت: شهریور ۱۳۹۰

تشکرها : 30371
( 9873 تشکر در 3843 ارسال )
ارسال: #10
RE: مشکل در TIMER 2 میکرو
همون 32768هزار. هیچ خازنی نزاشتم . قبلا 20 پیکو میزاشتم . یعنی اینقدر مهمه ؟

START...

۲۶-تير-۱۳۹۳, ۲۳:۰۴:۱۸
ارسال‌ها
پاسخ
omid_phoenix آفلاین
مدیر بخش
*****

ارسال‌ها: 2,238
موضوع‌ها: 108
تاریخ عضویت: شهریور ۱۳۹۱

تشکرها : 12682
( 15433 تشکر در 4574 ارسال )
ارسال: #11
RE: مشکل در TIMER 2 میکرو
(۲۶-تير-۱۳۹۳, ۲۳:۰۴:۱۸)Ambassador نوشته است: همون 32768هزار. هیچ خازنی نزاشتم . قبلا 20 پیکو میزاشتم . یعنی اینقدر مهمه ؟

واسه 32768k خازن نمیخواد
ولی واسه بقیه مهمه
با کریستال 11.59200 تستش کن
خازن هم 2 تا 10 پیکو براش بذار

۲۶-تير-۱۳۹۳, ۲۳:۱۲:۴۶
ارسال‌ها
پاسخ
تشکر شده توسط : Ambassador, babyy, رسول, a.mehran


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  مشکل در پاک کردن برنامه میکرو Salam7 1 398 ۲۹-بهمن-۱۴۰۰, ۲۲:۵۰:۴۴
آخرین ارسال: 1نفر
  مشکل دریافت متن از پورت سریال میکرو sajadcut 1 3,260 ۱۲-آبان-۱۳۹۵, ۲۲:۱۰:۲۳
آخرین ارسال: behzady
  تست میکرو saber.k 10 14,048 ۰۹-شهریور-۱۳۹۵, ۰۲:۰۹:۲۷
آخرین ارسال: yadulla fazel
  مشکل در هنگام بوت شدن ویندوز و اجرای دستورات میکرو unforgiven 3 3,732 ۳۱-مرداد-۱۳۹۵, ۱۹:۴۷:۲۵
آخرین ارسال: unforgiven
  مشکل ارتباط میکرو با ماژول sim908 saba7darya 15 8,907 ۳۰-اردیبهشت-۱۳۹۵, ۱۰:۱۸:۰۵
آخرین ارسال: sharin
  مشکل با فرکانس 16 مگ میکرو pontiac132 3 3,237 ۰۳-اسفند-۱۳۹۳, ۱۳:۲۸:۲۸
آخرین ارسال: pontiac132
  [فوری] مشکل اتصال میکرو به ماژول solmaz1992 4 4,075 ۳۰-دى-۱۳۹۳, ۲۱:۰۳:۳۳
آخرین ارسال: NAVID$KASHI
  [سوال] مشکل در پاور میکرو و گیرنده پارس( یا همون tsop 1738) HamidSay 36 17,578 ۱۱-دى-۱۳۹۳, ۰۳:۳۵:۳۵
آخرین ارسال: HamidSay
Smile [سوال] مشکل با وقفه خارجی(INT 0)میکرو علیدلی 15 14,973 ۱۰-دى-۱۳۹۳, ۲۲:۴۵:۱۵
آخرین ارسال: sharin
  [فوری] مشکل با برنامه کانتر میکرو milad15m 22 9,050 ۱۲-مهر-۱۳۹۳, ۱۷:۲۸:۰۸
آخرین ارسال: omid_phoenix

پرش به انجمن:


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

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