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

ارسال‌ها: 38
موضوع‌ها: 8
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #1
راهنمایی درباره تایمر0و کانتر1
سلام
اقا من دارم از timer 0 وcounter1 برا یه کاری استفاده میکنم میخوام تایمر0 1ثانیه بشماره بعد به سراغ کانتر بره و ببینه تو این 1 ثانیه چند تا پالس اومده از سنسوری که counter داره اونو میشماره برنامم اینه مشکلی داره؟

$regfile = "m16def.dat"
$crystal = 8000000
Config Timer0 = Timer , Prescale = 1
Config Timer1 = Counter , Edge = Rising
Config Porta = Output
Dim X As Word
Enable Interrupts
Enable Timer0
Enable Ovf0
Do
Timer0 = 1230
On Ovfo Count
Loop

End
count:
X = 0
Counter1 = 0
Do
X = Counter1
Return
می شه لطفا اشکالات این برنامه رو بگید؟
از دستور
enable timer0
ایراد میگیره!!!!!!!!!
۰۴-بهمن-۱۳۸۶, ۱۶:۱۷:۲۱
ارسال‌ها
پاسخ
IMeysam آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 323
موضوع‌ها: 56
تاریخ عضویت: اسفند ۱۳۸۵

تشکرها : 0
( 53 تشکر در 30 ارسال )
ارسال: #2
 
شما هم نوشتیEnable Timer0 هم نوشتی Enable Ovf0 باید فقط Enable Ovf0 رو بذاری.
من همیشه تو اینیشیال کردن رجیستر ها تو بیسکام مشکل داشتم به همین خاطر می رقتم تو ویزارد کدویژن تنظیمات رو انجام میدادم و کپی میکردم بعد تو بیسکام پیست می کردم :wink:

اي آمده از عالم روحاني تفت /////// حيران شده در پنج و چهار و شش و هفت
می نوش ندانی ز کجا آمده‌اي /////// خوش باش ندانی بکجا خواهی رفت
۰۴-بهمن-۱۳۸۶, ۱۸:۰۱:۵۲
وب سایت ارسال‌ها
پاسخ
ma_bazrafshan آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 8
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #3
 
سلام
چه جوری میتونم این کار رو بکنم؟
جالبه
۰۵-بهمن-۱۳۸۶, ۰۳:۲۴:۱۹
ارسال‌ها
پاسخ
Pardazesh-Gar آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 457
موضوع‌ها: 6
تاریخ عضویت: اردیبهشت ۱۳۸۶

تشکرها : 330
( 630 تشکر در 286 ارسال )
ارسال: #4
 
البته مشکلات دیگری هم داشت همه رو با هم نمی گه.
بعضی از فرمان ها تکرار شده بودند.
این برنامه خطایی ندارد.
کد:
$regfile = "m16def.dat"
$crystal = 8000000
Config Timer0 = Timer , Prescale = 1
Config Timer1 = Counter , Edge = Rising
On Timer0 Count
Config Porta = Output
Dim X As Word

Enable Interrupts
Enable Timer0

Do
    Timer0 = 123
Loop



count:
    X = Counter1
Return

---------------------------------------------------------------------------
تیـــز دوم، تیز دوم، تا به سواران برسم
--------------------------------------
۰۵-بهمن-۱۳۸۶, ۰۹:۴۸:۳۰
ارسال‌ها
پاسخ
ma_bazrafshan آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 8
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #5
 
سلام
من می خوام با تایمر صفر 1 ثانیه بشمارم و کریستالمم هم حتما 8000000 باشه
چکار کنم؟
۰۶-بهمن-۱۳۸۶, ۰۰:۰۷:۲۵
ارسال‌ها
پاسخ
Pardazesh-Gar آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 457
موضوع‌ها: 6
تاریخ عضویت: اردیبهشت ۱۳۸۶

تشکرها : 330
( 630 تشکر در 286 ارسال )
ارسال: #6
 
چرا شرایط را سخت می کنید؟ :roll:
تایمر صفر 8 بیت است!
دو + یک راه وجود دارد
استفاده از کریستال دوم که ویژه تایمر است و تنظیم اسیلاتور داخلی روی فرکانس 8M. مناسب ترین انتخاب که CPU بیش از 99 درصد آزاد است.
روش های دیگر به نحوه نوشتن برنامه مربوط است. که پیشنهاد نمی شود CPU حسابی درگیر حساب و کتاب می شود.

---------------------------------------------------------------------------
تیـــز دوم، تیز دوم، تا به سواران برسم
--------------------------------------
۰۶-بهمن-۱۳۸۶, ۰۰:۳۵:۳۳
ارسال‌ها
پاسخ
ma_bazrafshan آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 8
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #7
 
سلام
من میخوام با سه تا تایمر ها کار کنم با یکی 1 ثانیه بشمارم که فکر میکنم تایمر صفر مناسبه
با یکی تعداد پالس های که میاد رو بشمارم که چون ممکنه زیاد شه از تایمر 16 بیتی صفر استفاده میکنم
با دیگری هم پالس pwm درست کنم
در اصل میخوام سرعت چرخش یه موتور رو با سنسور هال اندازه بگیرم و نمایش بدم
در ضمن منظورتون از کریستال دوم چیه؟
۰۶-بهمن-۱۳۸۶, ۰۳:۱۶:۰۳
ارسال‌ها
پاسخ
ma_bazrafshan آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 8
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #8
 
من برنامه زیر رو با کانتر 1 جواب میگیرم اما با کانتر صفر نه چرا؟
برا کانتر 1 به پین t1 و برا کانتر 0 به پین t0 وصل میکنم
چرا جواب نمیده؟
$regfile = "m16def.dat"
$crystal = 8000000
Config Timer0 = Counter , Edge = Rising
Config Portd = Output
Enable Interrupts
Enable Timer0
Dim X As Word
Counter0 = 0
Do
X = Counter0
If X = 4 Then
Portd = &B11111111
End If
Loop
End
۰۶-بهمن-۱۳۸۶, ۰۵:۱۷:۲۶
ارسال‌ها
پاسخ
Pardazesh-Gar آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 457
موضوع‌ها: 6
تاریخ عضویت: اردیبهشت ۱۳۸۶

تشکرها : 330
( 630 تشکر در 286 ارسال )
ارسال: #9
 
در بالا اشاره به تایمر صفر داشتم.
تایمر صفر 8 بیت است!
تایمر یک 16 بیت است!
word 16Bit
Byte 8bit

باید از Byte استفاده کنید.
:idea:

کد:
Dim X As Word
||
Dim X As Byte


خیلی خوبه که Code را قرار می دهید برای اینکه بشود به درستی آن را مطالعه کرد خوب از قالب زیر استفاده کنید.

کد:
[code]

code

[/code]

---------------------------------------------------------------------------
تیـــز دوم، تیز دوم، تا به سواران برسم
--------------------------------------
۰۷-بهمن-۱۳۸۶, ۰۲:۰۲:۵۶
ارسال‌ها
پاسخ
ma_bazrafshan آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 8
تاریخ عضویت: آذر ۱۳۸۶

تشکرها : 0
( 1 تشکر در 1 ارسال )
ارسال: #10
 
سلام
من میخوام با تایمر صفر که 8بیتی هست 1 ثانیه بشمارم چه پیشنهادی میکنید؟
میشه اگه ممکنه برنامه رو بنویسید؟با بسکام ؟
۰۷-بهمن-۱۳۸۶, ۰۳:۳۹:۱۵
ارسال‌ها
پاسخ
Pardazesh-Gar آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 457
موضوع‌ها: 6
تاریخ عضویت: اردیبهشت ۱۳۸۶

تشکرها : 330
( 630 تشکر در 286 ارسال )
ارسال: #11
 
فکر بدی نیست انجام می دهم و در مقاله های سایت قرار می دهم.
اما برای کار شما پیشنهادم استفاده از کریستال دوم است. کریستال ساعت یا همان کریستال دوم به پایه های TOSC1,2 وصل می شود. و یکی از تایمر های 1 یا 0 را کنترل می کند. با یک کریستال 32768 و انتخاب تقسیم مناسب می شود 1 ثانیه را ساخت.

---------------------------------------------------------------------------
تیـــز دوم، تیز دوم، تا به سواران برسم
--------------------------------------
۰۸-بهمن-۱۳۸۶, ۱۸:۵۲:۴۲
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  درخواست راهنمایی برای یک دوست GOLDOST 1 0 ۱۵-بهمن-۱۴۰۲, ۰۰:۴۶:۵۱
آخرین ارسال: GOLDOST
  [فوری] کمک درباره نویز گرفتن میکرو avr عابد مقدسیان 8 3,322 ۱۱-بهمن-۱۳۹۷, ۲۲:۴۱:۰۶
آخرین ارسال: 1نفر
  راهنمایی در مورد کنترل دور موتور کولر sinastar 12 23,448 ۱۰-آبان-۱۳۹۷, ۱۰:۱۸:۵۹
آخرین ارسال: alimogmov
Question [سوال] یه سوال درباره ماژول esp8266 Index1 4 3,150 ۰۴-اردیبهشت-۱۳۹۷, ۲۳:۰۹:۲۶
آخرین ارسال: babyy
  درخواست راهنمایی منو سازی برای Atmega32 به زبان بیسیک برویglcd armin111 9 6,171 ۱۶-شهریور-۱۳۹۶, ۱۱:۳۹:۲۵
آخرین ارسال: sky_man847
  راهنمایی برای انتخاب پروگرامر Ambassador 5 8,523 ۰۴-مرداد-۱۳۹۶, ۱۶:۰۳:۵۹
آخرین ارسال: CONTOROLER
  درخواست راهنمایی ولوم دیجیتالی sobhan6831 0 2,210 ۰۶-اردیبهشت-۱۳۹۶, ۲۱:۱۷:۳۵
آخرین ارسال: sobhan6831
  راهنمایی برای حل مشکل برنامه در بسکام fedagh 2 3,420 ۱۲-دى-۱۳۹۵, ۱۸:۳۰:۵۹
آخرین ارسال: fedagh
  درخواست راهنمایی درباره دماسنج و رطوبت سنج fedagh 2 3,195 ۰۳-دى-۱۳۹۵, ۰۱:۲۵:۰۷
آخرین ارسال: omid_phoenix
  درخواست راهنمایی از دوستان p.n 5 3,540 ۰۶-آذر-۱۳۹۵, ۲۳:۲۹:۱۹
آخرین ارسال: Ambassador

پرش به انجمن:


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

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