سلام دوستان گل
من میخوام با دستور Debounce مثل Int 0 عمل کنم یعنی بیامو
و با هر دفعه زدن کلید فقط یه دونه بندازه رو متغییر نه اینه که زیاد
همون طور که تو وقفه خارجی میشه که این کارو کرد!
من اینو نوشتم
do
debounce pinb.6,1,q
home:lcd x
loop
q:
incr x
return
باید کار کنه اما!
سلام.
الان end برنامه ي شما كجاست؟
وقتي از debounce استفاده مي كني ، مي توني پرش به labe; كني ، مي توني پرش به "ساب روتين" داشته باشي.
اگر end برنامه بعد از محتويات label Q هست ، در اينصورت بايد پرش label داشته باشيد. يعني همين كدهايي كه زديد اما به جاي return در label Q بايد مثلا از goto main استفاده كيد ، واضح هست ، كه main رو بايد اول برنامه اتون قرار بديد.
روش ديگه كه پرش به "سابروتين" بايد در دستور debounce علاوه بر چيزايي كه نوشتيد يه ,sub هم بنويسيد.
label Q رو هم بايد بعد از end برنامه بذاريد و در نهايت Q رو Return كنيد.
الان شما هر 2 اين روش رو با هم قاطي كرديد. در help بسكام مثال به روش دوم رو گذاشته.
موفق باشيد.
(۲۰-بهمن-۱۳۹۱, ۱۸:۰۷:۰۶)sharin نوشته است: [ -> ]سلام.
الان end برنامه ي شما كجاست؟
وقتي از debounce استفاده مي كني ، مي توني پرش به labe; كني ، مي توني پرش به "ساب روتين" داشته باشي.
اگر end برنامه بعد از محتويات label Q هست ، در اينصورت بايد پرش label داشته باشيد. يعني همين كدهايي كه زديد اما به جاي return در label Q بايد مثلا از goto main استفاده كيد ، واضح هست ، كه main رو بايد اول برنامه اتون قرار بديد.
روش ديگه كه پرش به "سابروتين" بايد در دستور debounce علاوه بر چيزايي كه نوشتيد يه ,sub هم بنويسيد.
label Q رو هم بايد بعد از end برنامه بذاريد و در نهايت Q رو Return كنيد.
الان شما هر 2 اين روش رو با هم قاطي كرديد. در help بسكام مثال به روش دوم رو گذاشته.
موفق باشيد.
نه من مشکلمو حل کردم
ولی میخوام با این روش هم بنویسم
راستی
با وقفه هم درست کار نمیکرد بعضا 2 تا به متغییر اضافه میکرد
در حالی که باید یدونه بندازه
تاخییر هم گذاشتم
تو پروتوس درست کار میکنه
ولی در عمل نه!
با فرکانس های مختلف تست زدم
بستگي دارهه سيگنال وقفه رو چي توليد مي كنه ...
اگر كليد هست ، حتما طراحيه كليدتون بد هست. يعني مشكل سخت افزاري. ( در پروتوس اينجور موارد دخالتي ندارن )
علت اينه كه كنتاكت سخت افزاري باعث لرزش مي شه و همين باعث مي شه بجايي كه ميكرو يه بار به وقفه برهه ، چند بار به وقفه برهه ...
براي رفعش به صورت سخت افزاري بايد از خازن با اندازه ي مناسب استفاده كنيد.
تو Net سرچ بزنيد ، طراحي هاي مختلف رو مي تونيد ببينيد.
موفق باشيد.
یه کارد دریگه هم میتونی.
ازدستور bitwait هم میتونی استفاده کنی.
و اینی که میگی در عمل مشکل داره رو برد بورد تست زدی؟
(۲۰-بهمن-۱۳۹۱, ۲۳:۱۸:۰۳)sharin نوشته است: [ -> ]بستگي دارهه سيگنال وقفه رو چي توليد مي كنه ...
اگر كليد هست ، حتما طراحيه كليدتون بد هست. يعني مشكل سخت افزاري. ( در پروتوس اينجور موارد دخالتي ندارن )
علت اينه كه كنتاكت سخت افزاري باعث لرزش مي شه و همين باعث مي شه بجايي كه ميكرو يه بار به وقفه برهه ، چند بار به وقفه برهه ...
براي رفعش به صورت سخت افزاري بايد از خازن با اندازه ي مناسب استفاده كنيد.
تو Net سرچ بزنيد ، طراحي هاي مختلف رو مي تونيد ببينيد.
موفق باشيد.
نکته خوبی بود حتما تست میزنم
نتیجشو میگم
(۲۱-بهمن-۱۳۹۱, ۰۷:۲۶:۲۶)h.unique نوشته است: [ -> ]یه کارد دریگه هم میتونی.
ازدستور bitwait هم میتونی استفاده کنی.
و اینی که میگی در عمل مشکل داره رو برد بورد تست زدی؟
آره حقیقتش مجبورم اول رو برد برد ببندم
چون میخوام با SIM900 کار کنم و اگه جواب گرفتم پی سی بی بزنم!
ببین رو برد بوردکه گذاشتی کلید وصل کردی یا از سیم به جای کلید استفاده میکنی؟
(۲۲-بهمن-۱۳۹۱, ۱۰:۰۱:۵۷)h.unique نوشته است: [ -> ]ببین رو برد بوردکه گذاشتی کلید وصل کردی یا از سیم به جای کلید استفاده میکنی؟
کلید گزاشتم
(۲۰-بهمن-۱۳۹۱, ۲۳:۱۸:۰۳)sharin نوشته است: [ -> ]بستگي دارهه سيگنال وقفه رو چي توليد مي كنه ...
اگر كليد هست ، حتما طراحيه كليدتون بد هست. يعني مشكل سخت افزاري. ( در پروتوس اينجور موارد دخالتي ندارن )
علت اينه كه كنتاكت سخت افزاري باعث لرزش مي شه و همين باعث مي شه بجايي كه ميكرو يه بار به وقفه برهه ، چند بار به وقفه برهه ...
براي رفعش به صورت سخت افزاري بايد از خازن با اندازه ي مناسب استفاده كنيد.
تو Net سرچ بزنيد ، طراحي هاي مختلف رو مي تونيد ببينيد.
موفق باشيد.
ممنو از شما من
پایه Int0 رو با یه 10 میکرو فاراد دادم به vcc مشکل حل شد