ايران ويج

نسخه‌ی کامل: کمک در مورد تایمر /کانتر
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
سلام دوستان.
اگه همیشه در مورد اینکه چگونه با تایمر کانتر تعداد دفعاتی رو که یک پایه 1 میشه رو بشمارم کمکم کنید ممنونتون میشم؟
من هر کاری کردم موفق نشدم  ):SadSadSad
سلام.
شمارش با تايمر ، درسته ؟
اگر از بسكام استفاده مي كنيد كه همون اول طبق كانفيگي كه در Help اومدهه ، تايمر رو اول برنامه به صورت counter پيكربندي مي كنيد.
و نكته ي مهم اينه كه پايه كه قراره به واحد شمارنده برسه رو بايد ورودي كانفيگ كنيد ( مثلا پايه ي B.0 و يا B.1 در MEGA32 )

اگر با كدويژن كار مي كنيد ، بايد كلاك واحد شمارنده رو به صورت كلاك خارجي تنظيم كنيد.

موفق باشيد.
(۰۹-مرداد-۱۳۹۱, ۱۲:۳۲:۰۶)sharin نوشته است: [ -> ]سلام.
شمارش با تايمر ، درسته ؟
اگر از بسكام استفاده مي كنيد كه همون اول طبق كانفيگي كه در Help اومدهه ، تايمر رو اول برنامه به صورت counter پيكربندي مي كنيد.
و نكته ي مهم اينه كه پايه كه قراره به واحد شمارنده برسه رو بايد ورودي كانفيگ كنيد ( مثلا پايه ي B.0 و يا B.1 در MEGA32 )

اگر با كدويژن كار مي كنيد ، بايد كلاك واحد شمارنده رو به صورت كلاك خارجي تنظيم كنيد.

موفق باشيد.

سلام دستت درد نکنه.
ای وایه من من میگفتم این چرا جواب نمیده نگو که باید اون پایه رو خروجی تعریف کنی.
امتحان میکنم و خبر میدم.
ممنون
آقا شارین میشه یه برنامه با بیسکام واسم بنویسی که تعداد دفعاتی که یک پایه 1 میشه رو واسم بشماره و روی lcd نشون بده؟
ممنون
نقل قول: ای وایه من من میگفتم این چرا جواب نمیده نگو که باید اون پایه رو خروجی تعریف کنی.

خروجي نه ، ورودي درسته !! ( با دقت پست اولم رو بخونيد. )

نقل قول: آقا شارین میشه یه برنامه با بیسکام واسم بنویسی که تعداد دفعاتی که یک پایه 1 میشه رو واسم بشماره و روی lcd نشون بده؟
ممنون
شما كدهايي رو كه نوشتي براي اين قسمت ، همراه با سخت افزاري كه استفاده مي كني بذار تا بررسي بشه ...
شايد مشكل جاي ديگه باشه ...

موفق باشي.
سلام.
ممنون که وقت میزاری.
این برنامه:
کد:
$regfile = "m8def.dat"
$crystal = 8000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Timer1 = Counter , Edge = Rising , Capture Edge = Rising , Noise Cancel = 1 , Prescale = 1
Config Pinb.5 = Input

Dim W As Word

W = Capture1

Cursor Off

Do

Cls
Lcd "Counter1:" ; W
Wait 1

Loop

End
[تصویر:  2012_07_30_223323.jpg]
برنامه چندتا مشكل داشت.

ببين و با مال خودت مقايسه كن.

کد php:
$regfile "m8def.dat"
$crystal 8000000

Config Lcd 
16 2
Config Lcdpin 
Pin Rs Portc.0 Portc.1 Db4 Portc.2 Db5 Portc.3 Db6 Portc.4 Db7 Portc.5
Config Timer1 
Counter Edge Falling
Config Pind.5 
Input
Dim W 
As Byte

Do

Cls
Counter1
Lcd 
"Counter1:" W
Wait 1

Loop

End 
ایوالله .
دمت گرم مشکلم حل شد.
ولی 2تا دیگه سوال دارم.
1:مگه شما نگفتین باید پایه t1 رو ورودی تعریف کرد؟اما من اصلا اونو تعریف نکردم و جواب داد.
2:فرق تایمر با کانتر چیه؟
ممنون میشم اگه اینارو جواب بدین.
راستی برنامه رو که خلاصه کردم اینطور شد و جواب داد.
کد:
$regfile = "m8def.dat"
$crystal = 8000000

Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portc.0 , E = Portc.1 , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5
Config Timer1 = Counter , Edge = Rising

Cursor Off

Do

Cls : Lcd "Counter1:" ; Counter1 : Waitms 500

Loop

End
نقل قول: ایوالله .
دمت گرم مشکلم حل شد.
ولی 2تا دیگه سوال دارم.
1:مگه شما نگفتین باید پایه t1 رو ورودی تعریف کرد؟اما من اصلا اونو تعریف نکردم و جواب داد.
2:فرق تایمر با کانتر چیه؟
ممنون میشم اگه اینارو جواب بدین.
راستی برنامه رو که خلاصه کردم اینطور شد و جواب داد.

تا اونجايي كه يادمه حتما بايد ورودي نعريف مي كرديم ، ( شما عملي چك كرديد يا شبيه سازي؟ )
معمولا وقتي پايه اي رو كانفيگ نمي كنيد ، اون پايه High-Impedance هست و براي AVR كه 2 حالت ورودي و خروجي رو بيشتر ندارهه ، به صورت ديفالت ورودي هستن.
------------
تايمر و كانتر فرقي ندارن ، فقط يه ريجستر 8 يا 16 بيتي اون تو هست كه مي شمارهه ...
اگر كلاك شمارشش منظم باشه و از مقسم هاي فركانس اصلي سيستم باشه ، يه طبع منظم مي شمارهه و مي تونيد به عنوان تايمر ازش استفاده كنيد چون فركانس شمارش ثابت هست.
وقتي كه كلاك شمارشش رو خارجي تعريف كنيد و توسط يك سيگنال از خارج شمارشش صورت بگيرهه ( اين شمارش مي تونه منظم يا نا منظم باشه ، بسته به سيگنالي كه از خارج وارد مي شه دارهه ، در واقع مي تونه فركانسش ثابت يا متغيير باشه ... )
اينه كه به اين مي گيم كانتر.
اما در كل اسم ريجستراشون يكي هست و واحد تايمر و يا كانتر جدا از هم نيستن.

موفق باشيد.
سلام چطوری میتونم زمانشو محدود کنم ؟ یعنی فقط تا ده ثانیه تعداد رو بشوره و بعدش متوقف بشه ؟