ايران ويج

نسخه‌ی کامل: مشکل در toggle کردن یک pin در بسکام
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
با سلام
یه مشکل کوچیک پیدا کردم یه هفتست نمیتونم یه برنامه بنویسم که وقتی کلید زده میشه پین 2 پورت d برعکس بشه بمونه تا دوباره کلید زده بشه برعکس بشه بمونه
X(:$regfile "m8def.dat"
$crystal = 1000000
Config Portb.0 = Output
Config Portb.2 = Input

Portb.0 = 0

W:

Debounce Portb.2 , 0 , Q
Goto W
Q:

Toggle Portb.0

Return


End

اینو نوشتم جواب نداد
سلام..
کد:
debounce pinx.y,1,ebi
شما port را به pin تغییر بدین درست میشه..
موفق باشین
(۱۴-بهمن-۱۳۹۱, ۰۱:۴۲:۳۵)EBKA نوشته است: [ -> ]سلام..
کد:
debounce pinx.y,1,ebi
شما port را به pin تغییر بدین درست میشه..
موفق باشین
انجام دادم درست نشد . pin2 روشن میشه ولی خاموش نمیشه .البته تو پروتیوس تست کردم . Sad
شما تو برنامت حلقه ی بینهایت نذاشتی یا برنامه رو بذار تو حلقه یا قبل از return بنویس goto w
دستور debounce رو اینطوری تعریف کنید؛
کد:
Debounce Pinb.2 , 0 , Q, sub
.
.
sub Q
.
end sub
return
حالا چرا با do loop و شرط if این کار رو انجام نمیدید؟
سلام.
برنامه ی شما چندتا ایراد داشت:
همونطور که دوستان گفتن:
1.وقتی میخوای یک پین رو خروجی یا ورودی تعریف کنی نباید بنویسی پورت باید بنویسی پین.
2.تو دستور دیبانس نوشتی پورت که اشتباس باید بنویسی پین.به طور کلی در ورودی باید بنویسی پین و خروجی ها باید بنویسی پورت.
3.حلقه هم نزاشتی.
4.ایراد آخری هم اون Portb.0 = 0 که اینو نباید بنویسی چون موقعی که برنامه از زیر برنامه خارج میشه میاد از اول همه دستور هارو اجرا میکنه و پین دوباره 0 میشه.
و در آخر برنامه ی اصلاح شده:
کد:
$regfile = "m8def.dat"
$crystal = 1000000

Config Pinb.0 = Output
Config Pinb.2 = Input

Do

Debounce Pinb.2 , 1 , Q , Sub

Loop

End                                                         'end program

Q:
Toggle Portb.0
Return
موفق باشی.
(۱۴-بهمن-۱۳۹۱, ۱۸:۱۳:۵۳)h.unique نوشته است: [ -> ]سلام.
برنامه ی شما چندتا ایراد داشت:
همونطور که دوستان گفتن:
1.وقتی میخوای یک پین رو خروجی یا ورودی تعریف کنی نباید بنویسی پورت باید بنویسی پین.
2.تو دستور دیبانس نوشتی پورت که اشتباس باید بنویسی پین.به طور کلی در ورودی باید بنویسی پین و خروجی ها باید بنویسی پورت.
3.حلقه هم نزاشتی.
4.ایراد آخری هم اون Portb.0 = 0 که اینو نباید بنویسی چون موقعی که برنامه از زیر برنامه خارج میشه میاد از اول همه دستور هارو اجرا میکنه و پین دوباره 0 میشه.
و در آخر برنامه ی اصلاح شده:
کد:
$regfile = "m8def.dat"
$crystal = 1000000

Config Pinb.0 = Output
Config Pinb.2 = Input

Do

Debounce Pinb.2 , 1 , Q , Sub

Loop

End 'end program

Q:
Toggle Portb.0
Return
موفق باشی.

حاجی دمت گرم . کارت درسته خدایی. Happy