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

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۹۳

تشکرها : 3
( 0 تشکر در 0 ارسال )
ارسال: #1
Sad  تایمر بسکام
سلام من می خوام یک برنامه با تایمر بنویسم که هر 5 ثانیه یک ال ای دی رو روشن کنه و 20 ثانیه وایسه و این حالت به مدت 2 ساعت اتفاق بیافته .
من 5 ثانیه رو می تونم ایجاد کنم ولی با بقیه اش مشکل دارم .
خواهشا کمک کنید ...
توی پروتیوس هم جواب نمی گیرم اصلا
۱۶-خرداد-۱۳۹۴, ۰۹:۱۶:۱۰
ارسال‌ها
پاسخ
student-p آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 18
( 125 تشکر در 76 ارسال )
ارسال: #2
RE: تایمر بسکام
احساس ميكنم صورت سئوالتون ايراد داره؟!


شايد منظورتون اينه كه هر 20 ثانيه يكبار روشن بشه و براي 5 ثانيه روشن بمونه و ....
درسته؟

موفقيت توانايي رفتن از شكستي به شكست ديگر بدون از دست دادن شور و حرارت است. (وينستون چرچيل)

بهترین لینک دنیا اینجا رو کلیک کن(هر چی بخوای هست)

۱۶-خرداد-۱۳۹۴, ۱۱:۳۴:۴۸
وب سایت ارسال‌ها
پاسخ
نواوران طب آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۹۳

تشکرها : 3
( 0 تشکر در 0 ارسال )
ارسال: #3
RE: تایمر بسکام
(۱۶-خرداد-۱۳۹۴, ۱۱:۳۴:۴۸)student-p نوشته است: احساس ميكنم صورت سئوالتون ايراد داره؟!


شايد منظورتون اينه كه هر 20 ثانيه يكبار روشن بشه و براي 5 ثانيه روشن بمونه و ....
درسته؟


بله منظورم همین بود Biggrin
۱۶-خرداد-۱۳۹۴, ۱۱:۵۳:۱۹
ارسال‌ها
پاسخ
student-p آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 18
( 125 تشکر در 76 ارسال )
ارسال: #4
RE: تایمر بسکام
صرفا جهت راهنمايي؛


فرض كنيد ميخواهيد از ميكرويي با فركانس 8 مگ ،استفاده از تايمر يك،Prescale مثلا 128 استفاده كنيد؛



طبق روابط، تايمر تقريبا هر 0.016 ثاينه يكبار(هر 16 ميلي ثانيه)سرريز ميشه،
حالا ميشه با شمارش اين تعداد دفعات زمان 1 ثانيه رو جهت انجام ادامه كار بدست آورد؛كه ميشه حدود 62 (62=1/0.016)

حالا فقط كافيه ي متغير بعنوان كانتر تعريف كني(مثلا A) و بگي مثلا هر وقت a برابر 20 شد پورتX رو يك كن ؛و در ادامه هر وقت 5 شد پورت مورد نظر رو ريست كن؛؛؛؛؛؛؛؛؛؛؛

ي متغير هم براي زمان كلي (ساعت)ك 2 ساعت ميشه 7200 ثانيه

در ادامه ي كد زدم(صرفا جهت نمونه)،



کد:
$regfile = "m32def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 128
Config Porta = Output

Enable Interrupts
Enable Timer1
On Timer1 ovf1


Dim t As Byte
Dim t As Byte
Dim saat As long

do

loop

end




ovf1:
incr t

if t=62 then

t=0
incr a
incr saat

if saat=7200 then stop timer1

if a=20 then
set porta.1
end if

if a=25 then
reset porta.1
a=0
end if

end if

return

موفقيت توانايي رفتن از شكستي به شكست ديگر بدون از دست دادن شور و حرارت است. (وينستون چرچيل)

بهترین لینک دنیا اینجا رو کلیک کن(هر چی بخوای هست)

(آخرین ویرایش در این ارسال: ۱۶-خرداد-۱۳۹۴, ۱۴:۵۰:۰۶، توسط student-p.)
۱۶-خرداد-۱۳۹۴, ۱۴:۳۷:۱۰
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : نواوران طب, milad15m
نواوران طب آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۹۳

تشکرها : 3
( 0 تشکر در 0 ارسال )
ارسال: #5
RE: تایمر بسکام
(۱۶-خرداد-۱۳۹۴, ۱۴:۳۷:۱۰)student-p نوشته است: صرفا جهت راهنمايي؛


فرض كنيد ميخواهيد از ميكرويي با فركانس 8 مگ ،استفاده از تايمر يك،Prescale مثلا 128 استفاده كنيد؛



طبق روابط، تايمر تقريبا هر 0.016 ثاينه يكبار(هر 16 ميلي ثانيه)سرريز ميشه،
حالا ميشه با شمارش اين تعداد دفعات زمان 1 ثانيه رو جهت انجام ادامه كار بدست آورد؛كه ميشه حدود 62 (62=1/0.016)

حالا فقط كافيه ي متغير بعنوان كانتر تعريف كني(مثلا A) و بگي مثلا هر وقت a برابر 20 شد پورتX رو يك كن ؛و در ادامه هر وقت 5 شد پورت مورد نظر رو ريست كن؛؛؛؛؛؛؛؛؛؛؛

ي متغير هم براي زمان كلي (ساعت)ك 2 ساعت ميشه 7200 ثانيه

در ادامه ي كد زدم(صرفا جهت نمونه)،



کد:
$regfile = "m32def.dat"
$crystal = 8000000
Config Timer1 = Timer , Prescale = 128
Config Porta = Output

Enable Interrupts
Enable Timer1
On Timer1 ovf1


Dim t As Byte
Dim t As Byte
Dim saat As long

do

loop

end




ovf1:
incr t

if t=62 then

t=0
incr a
incr saat

if saat=7200 then stop timer1

if a=20 then
set porta.1
end if

if a=25 then
reset porta.1
a=0
end if

end if

return




واقعا متشکرم به خاطر راهنماییتون ولی دو تا سوال دارم :
1- تایمر 1 که با prescale= 128 کار نمی کنه و شما طبق چه فرمولی 0.016 ثانیه بدست آوردید ؟ چون تقسیم 128 و 8MHz می شه 0.000016 ثانیه .

2- من روی برد که بستم زمان دقیقی که می خوام و نشون نمیده باید چی کار کنم ؟؟ Sad
۱۷-خرداد-۱۳۹۴, ۰۹:۵۲:۰۹
ارسال‌ها
پاسخ
student-p آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 18
( 125 تشکر در 76 ارسال )
ارسال: #6
RE: تایمر بسکام
سلام
بنده عرض كردم كه كد نوشته شده؛ نمونه است،

62500=8000000/128 فركانس كار تايمر
0.000016=1/62500
0.016=1024*0.000016 مدت زمانيكه طول مي كشد تا تايمر يك سرريز شود

حالا براي بدست آوردن مدت زمان يك ثانيه كافيه كه:
62=1/0.016 همان متغير T




از بابت Prescale = 128 معذرت؛Question

شما فقط كافيه ك تغييرات مد نظر خودتون رو مطابق روابط بالا اعمال كنيد

موفقيت توانايي رفتن از شكستي به شكست ديگر بدون از دست دادن شور و حرارت است. (وينستون چرچيل)

بهترین لینک دنیا اینجا رو کلیک کن(هر چی بخوای هست)

(آخرین ویرایش در این ارسال: ۱۷-خرداد-۱۳۹۴, ۱۴:۵۴:۵۷، توسط student-p.)
۱۷-خرداد-۱۳۹۴, ۱۴:۴۴:۵۹
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : نواوران طب, milad15m
student-p آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 18
( 125 تشکر در 76 ارسال )
ارسال: #7
RE: تایمر بسکام
(۱۷-خرداد-۱۳۹۴, ۱۴:۴۴:۵۹)student-p نوشته است: سلام
بنده عرض كردم كه كد نوشته شده؛ نمونه است،

62500=8000000/128 فركانس كار تايمر
0.000016=1/62500
0.016=1024*0.000016 مدت زمانيكه طول مي كشد تا تايمر يك سرريز شود

حالا براي بدست آوردن مدت زمان يك ثانيه كافيه كه:
62=1/0.016 همان متغير T




از بابت Prescale = 128 معذرت؛Question

شما فقط كافيه ك تغييرات مد نظر خودتون رو مطابق روابط بالا اعمال كنيد



يا رابطه ساده شده ي زير:

(مقدار نهايي تايمر*مقسم فركانس تايمر)/فركانس كار ميكرو=T




(1024*128)/8000000=t
t=62

موفقيت توانايي رفتن از شكستي به شكست ديگر بدون از دست دادن شور و حرارت است. (وينستون چرچيل)

بهترین لینک دنیا اینجا رو کلیک کن(هر چی بخوای هست)

۱۷-خرداد-۱۳۹۴, ۱۵:۰۵:۱۵
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : نواوران طب
نواوران طب آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۹۳

تشکرها : 3
( 0 تشکر در 0 ارسال )
ارسال: #8
RE: تایمر بسکام
(۱۷-خرداد-۱۳۹۴, ۱۵:۰۵:۱۵)student-p نوشته است:
(۱۷-خرداد-۱۳۹۴, ۱۴:۴۴:۵۹)student-p نوشته است: سلام
بنده عرض كردم كه كد نوشته شده؛ نمونه است،

62500=8000000/128 فركانس كار تايمر
0.000016=1/62500
0.016=1024*0.000016 مدت زمانيكه طول مي كشد تا تايمر يك سرريز شود

حالا براي بدست آوردن مدت زمان يك ثانيه كافيه كه:
62=1/0.016 همان متغير T




از بابت Prescale = 128 معذرت؛Question

شما فقط كافيه ك تغييرات مد نظر خودتون رو مطابق روابط بالا اعمال كنيد



يا رابطه ساده شده ي زير:

(مقدار نهايي تايمر*مقسم فركانس تايمر)/فركانس كار ميكرو=T




(1024*128)/8000000=t
t=62


متشکرم ولی متاسفانه مشکلم هنوز حل نشده.
من برنامه ام و شبیه سازی رو براتون توی پیوست می ذارم لطفا بگید مشکل از کجاست ؟


فایل‌(های) پیوست شده
.zip   New folder.zip (اندازه: 7.13 KB / تعداد دفعات دریافت: 70)
۱۸-خرداد-۱۳۹۴, ۱۰:۱۱:۳۵
ارسال‌ها
پاسخ
نواوران طب آفلاین
تازه وارد

ارسال‌ها: 5
موضوع‌ها: 1
تاریخ عضویت: اسفند ۱۳۹۳

تشکرها : 3
( 0 تشکر در 0 ارسال )
ارسال: #9
RE: تایمر بسکام
یکی کمک کنه یعنی هیشکی نمی تونه اشکال برنامه رو بگه ؟؟؟؟؟؟؟؟؟؟؟؟!!!!!!!!
۱۹-خرداد-۱۳۹۴, ۱۸:۲۸:۰۷
ارسال‌ها
پاسخ
student-p آفلاین
كاربر دو ستاره
**

ارسال‌ها: 168
موضوع‌ها: 24
تاریخ عضویت: مهر ۱۳۸۸

تشکرها : 18
( 125 تشکر در 76 ارسال )
ارسال: #10
RE: تایمر بسکام
سلام

اگه امكان داره تايمر يك رو انتخاب كنيد و پرسكيل رو 64 (يا هر مقدار پيش فرض ديگه)قرار بدين؛


كدهاي زير رو هم اصلاح كنيد:

Main1:
Set Pind.0
Bitwait Pinb.1 , Set
return

Main2:
Start Timer1
return


return ها رو يادتون رفته،

موفقيت توانايي رفتن از شكستي به شكست ديگر بدون از دست دادن شور و حرارت است. (وينستون چرچيل)

بهترین لینک دنیا اینجا رو کلیک کن(هر چی بخوای هست)

(آخرین ویرایش در این ارسال: ۲۰-خرداد-۱۳۹۴, ۰۹:۳۷:۲۸، توسط student-p.)
۲۰-خرداد-۱۳۹۴, ۰۹:۳۵:۱۴
وب سایت ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [سوال] خواندن داده های یک فایل روی هارد در برنامه بسکام Ambassador 1 739 ۲۸-تير-۱۳۹۹, ۱۶:۱۴:۱۴
آخرین ارسال: Ambassador
  مشکل برنامه تایمر با بیسکام soy1345 7 2,026 ۲۲-فروردین-۱۳۹۸, ۲۰:۴۸:۰۶
آخرین ارسال: 1نفر
  مشکل با eeprom بسکام کمک sky_man847 2 4,380 ۱۲-مهر-۱۳۹۷, ۰۰:۴۷:۰۸
آخرین ارسال: lrn1380
  [سوال] کانتر در بسکام questnet 7 3,486 ۱۲-مرداد-۱۳۹۷, ۰۱:۵۵:۵۴
آخرین ارسال: questnet
  مشکل در کار با تایمر 1 در بسکام klick 3 4,535 ۳۰-بهمن-۱۳۹۵, ۰۴:۰۴:۴۲
آخرین ارسال: omid_phoenix
  افکت کم نور و پر نور شدن تدریجی با بسکام؟ رسول21 19 18,305 ۲۱-بهمن-۱۳۹۵, ۱۴:۲۹:۴۲
آخرین ارسال: hadikh73
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh
Question [فوری] اتصال lcd گرافیکی به پایه های دلخواه میکرو در بسکام behzadsen 4 4,337 ۰۵-دى-۱۳۹۵, ۱۵:۲۵:۳۰
آخرین ارسال: behzadsen
  ولتمتر با AVR و بسکام electroavr 163 141,219 ۰۹-شهریور-۱۳۹۵, ۰۹:۱۹:۲۴
آخرین ارسال: alimogmov
  مشکل در ساخت تایمر لطفا کمک کنید omidsafari 8 6,502 ۰۹-مرداد-۱۳۹۵, ۱۷:۲۸:۰۹
آخرین ارسال: omidsafari

پرش به انجمن:


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

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