۰۸-مرداد-۱۳۹۱, ۱۵:۱۹:۱۲
۰۹-مرداد-۱۳۹۱, ۱۲:۳۲:۰۶
سلام.
شمارش با تايمر ، درسته ؟
اگر از بسكام استفاده مي كنيد كه همون اول طبق كانفيگي كه در Help اومدهه ، تايمر رو اول برنامه به صورت counter پيكربندي مي كنيد.
و نكته ي مهم اينه كه پايه كه قراره به واحد شمارنده برسه رو بايد ورودي كانفيگ كنيد ( مثلا پايه ي B.0 و يا B.1 در MEGA32 )
اگر با كدويژن كار مي كنيد ، بايد كلاك واحد شمارنده رو به صورت كلاك خارجي تنظيم كنيد.
موفق باشيد.
شمارش با تايمر ، درسته ؟
اگر از بسكام استفاده مي كنيد كه همون اول طبق كانفيگي كه در 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
۰۹-مرداد-۱۳۹۱, ۲۳:۵۵:۱۶
برنامه چندتا مشكل داشت.
ببين و با مال خودت مقايسه كن.
ببين و با مال خودت مقايسه كن.
کد php:
$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 = Falling
Config Pind.5 = Input
Dim W As Byte
Do
Cls
W = Counter1
Lcd "Counter1:" ; W
Wait 1
Loop
End
۱۰-مرداد-۱۳۹۱, ۱۳:۱۵:۱۰
ایوالله .
دمت گرم مشکلم حل شد.
ولی 2تا دیگه سوال دارم.
1:مگه شما نگفتین باید پایه t1 رو ورودی تعریف کرد؟اما من اصلا اونو تعریف نکردم و جواب داد.
2:فرق تایمر با کانتر چیه؟
ممنون میشم اگه اینارو جواب بدین.
راستی برنامه رو که خلاصه کردم اینطور شد و جواب داد.
دمت گرم مشکلم حل شد.
ولی 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 بيتي اون تو هست كه مي شمارهه ...
اگر كلاك شمارشش منظم باشه و از مقسم هاي فركانس اصلي سيستم باشه ، يه طبع منظم مي شمارهه و مي تونيد به عنوان تايمر ازش استفاده كنيد چون فركانس شمارش ثابت هست.
وقتي كه كلاك شمارشش رو خارجي تعريف كنيد و توسط يك سيگنال از خارج شمارشش صورت بگيرهه ( اين شمارش مي تونه منظم يا نا منظم باشه ، بسته به سيگنالي كه از خارج وارد مي شه دارهه ، در واقع مي تونه فركانسش ثابت يا متغيير باشه ... )
اينه كه به اين مي گيم كانتر.
اما در كل اسم ريجستراشون يكي هست و واحد تايمر و يا كانتر جدا از هم نيستن.
موفق باشيد.
۱۷-مهر-۱۳۹۲, ۲۰:۰۰:۲۶
سلام چطوری میتونم زمانشو محدود کنم ؟ یعنی فقط تا ده ثانیه تعداد رو بشوره و بعدش متوقف بشه ؟