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

ارسال‌ها: 38
موضوع‌ها: 10
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 43
( 2 تشکر در 2 ارسال )
ارسال: #1
Debounce=Int0
سلام دوستان گل
من میخوام با دستور Debounce مثل Int 0 عمل کنم یعنی بیامو
و با هر دفعه زدن کلید فقط یه دونه بندازه رو متغییر نه اینه که زیاد
همون طور که تو وقفه خارجی میشه که این کارو کرد!Wink
من اینو نوشتم

do
debounce pinb.6,1,q
home:lcd x
loop

q:
incr x
return

باید کار کنه اما!Amaze

GOD ,YOU KNOW BETTER
۲۰-بهمن-۱۳۹۱, ۱۷:۰۳:۲۷
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #2
RE: Debounce=Int0
سلام.
الان end برنامه ي شما كجاست؟
وقتي از debounce استفاده مي كني ، مي توني پرش به labe; كني ، مي توني پرش به "ساب روتين" داشته باشي.

اگر end برنامه بعد از محتويات label Q هست ، در اينصورت بايد پرش label داشته باشيد. يعني همين كدهايي كه زديد اما به جاي return در label Q بايد مثلا از goto main استفاده كيد ، واضح هست ، كه main رو بايد اول برنامه اتون قرار بديد.

روش ديگه كه پرش به "سابروتين" بايد در دستور debounce علاوه بر چيزايي كه نوشتيد يه ,sub هم بنويسيد.
label Q رو هم بايد بعد از end برنامه بذاريد و در نهايت Q رو Return كنيد.

الان شما هر 2 اين روش رو با هم قاطي كرديد. در help بسكام مثال به روش دوم رو گذاشته.

موفق باشيد.

۲۰-بهمن-۱۳۹۱, ۱۸:۰۷:۰۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : behzady, omid_phoenix, ehsancompany, aKaReZa75
ehsancompany آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 10
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 43
( 2 تشکر در 2 ارسال )
ارسال: #3
RE: Debounce=Int0
(۲۰-بهمن-۱۳۹۱, ۱۸:۰۷:۰۶)sharin نوشته است: سلام.
الان end برنامه ي شما كجاست؟
وقتي از debounce استفاده مي كني ، مي توني پرش به labe; كني ، مي توني پرش به "ساب روتين" داشته باشي.

اگر end برنامه بعد از محتويات label Q هست ، در اينصورت بايد پرش label داشته باشيد. يعني همين كدهايي كه زديد اما به جاي return در label Q بايد مثلا از goto main استفاده كيد ، واضح هست ، كه main رو بايد اول برنامه اتون قرار بديد.

روش ديگه كه پرش به "سابروتين" بايد در دستور debounce علاوه بر چيزايي كه نوشتيد يه ,sub هم بنويسيد.
label Q رو هم بايد بعد از end برنامه بذاريد و در نهايت Q رو Return كنيد.

الان شما هر 2 اين روش رو با هم قاطي كرديد. در help بسكام مثال به روش دوم رو گذاشته.

موفق باشيد.
نه من مشکلمو حل کردم
ولی میخوام با این روش هم بنویسم
راستی
با وقفه هم درست کار نمیکرد بعضا 2 تا به متغییر اضافه میکرد
در حالی که باید یدونه بندازه
تاخییر هم گذاشتم
تو پروتوس درست کار میکنه
ولی در عمل نه!
با فرکانس های مختلف تست زدم

GOD ,YOU KNOW BETTER
(آخرین ویرایش در این ارسال: ۲۰-بهمن-۱۳۹۱, ۲۲:۴۱:۲۷، توسط ehsancompany.)
۲۰-بهمن-۱۳۹۱, ۲۲:۳۲:۳۰
ارسال‌ها
پاسخ
sharin آفلاین
مدیر بازنشسته
*****

ارسال‌ها: 2,053
موضوع‌ها: 28
تاریخ عضویت: مرداد ۱۳۸۹

تشکرها : 3714
( 8171 تشکر در 2772 ارسال )
ارسال: #4
RE: Debounce=Int0
بستگي دارهه سيگنال وقفه رو چي توليد مي كنه ...
اگر كليد هست ، حتما طراحيه كليدتون بد هست. يعني مشكل سخت افزاري. ( در پروتوس اينجور موارد دخالتي ندارن )
علت اينه كه كنتاكت سخت افزاري باعث لرزش مي شه و همين باعث مي شه بجايي كه ميكرو يه بار به وقفه برهه ، چند بار به وقفه برهه ...
براي رفعش به صورت سخت افزاري بايد از خازن با اندازه ي مناسب استفاده كنيد.
تو Net سرچ بزنيد ، طراحي هاي مختلف رو مي تونيد ببينيد.

موفق باشيد.

۲۰-بهمن-۱۳۹۱, ۲۳:۱۸:۰۳
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : aKaReZa75, ehsancompany
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,488
موضوع‌ها: 23
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4581 تشکر در 1478 ارسال )
ارسال: #5
RE: Debounce=Int0
یه کارد دریگه هم میتونی.
ازدستور bitwait هم میتونی استفاده کنی.
و اینی که میگی در عمل مشکل داره رو برد بورد تست زدی؟

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۱-بهمن-۱۳۹۱, ۰۷:۲۶:۲۶
وب سایت ارسال‌ها
پاسخ
تشکر شده توسط : ehsancompany
ehsancompany آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 10
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 43
( 2 تشکر در 2 ارسال )
ارسال: #6
RE: Debounce=Int0
(۲۰-بهمن-۱۳۹۱, ۲۳:۱۸:۰۳)sharin نوشته است: بستگي دارهه سيگنال وقفه رو چي توليد مي كنه ...
اگر كليد هست ، حتما طراحيه كليدتون بد هست. يعني مشكل سخت افزاري. ( در پروتوس اينجور موارد دخالتي ندارن )
علت اينه كه كنتاكت سخت افزاري باعث لرزش مي شه و همين باعث مي شه بجايي كه ميكرو يه بار به وقفه برهه ، چند بار به وقفه برهه ...
براي رفعش به صورت سخت افزاري بايد از خازن با اندازه ي مناسب استفاده كنيد.
تو Net سرچ بزنيد ، طراحي هاي مختلف رو مي تونيد ببينيد.

موفق باشيد.

نکته خوبی بود حتما تست میزنم
نتیجشو میگم

(۲۱-بهمن-۱۳۹۱, ۰۷:۲۶:۲۶)h.unique نوشته است: یه کارد دریگه هم میتونی.
ازدستور bitwait هم میتونی استفاده کنی.
و اینی که میگی در عمل مشکل داره رو برد بورد تست زدی؟
آره حقیقتش مجبورم اول رو برد برد ببندم
چون میخوام با SIM900 کار کنم و اگه جواب گرفتم پی سی بی بزنم!

GOD ,YOU KNOW BETTER
(آخرین ویرایش در این ارسال: ۲۲-بهمن-۱۳۹۱, ۰۲:۳۲:۲۲، توسط ehsancompany.)
۲۲-بهمن-۱۳۹۱, ۰۲:۳۰:۱۸
ارسال‌ها
پاسخ
aKaReZa75 آفلاین
حسین باقری
*****

ارسال‌ها: 1,488
موضوع‌ها: 23
تاریخ عضویت: مرداد ۱۳۹۱

تشکرها : 4898
( 4581 تشکر در 1478 ارسال )
ارسال: #7
RE: Debounce=Int0
ببین رو برد بوردکه گذاشتی کلید وصل کردی یا از سیم به جای کلید استفاده میکنی؟

سلام، من حسین باقری هستم، طراح الکترونیک و برنامه نویس میکروکنترلر.
توی کانال یوتیوب من قراراه طراحی انواع بردهای الکترونیکی مثل بردهای تک لایه، دو لایه یا به طور کلی بردهای چند لایه، بردهای مبتنی بر میکروکنترلر، بردهای صنعتی، بردهای الکترونیک قدرت و بردهای فرکانس بالارو یاد بگیریم.
همینطور کدنویسی انواع میکروکنترلرهای 8 بینی مثل میکروکنترلرهای خانواده AVR-STM8، میکروکنترلرهای میبتی بر معماری ARM مثل STM32 و پردازنده های مخصوص اینترنت اشیاء مثل ESP32-ESP8266 و DSPها یاد میگیریم.
در کنار مباحث گفت شده، اصول اندازه الکترونیکی، نحوه صحیح مونتاژ و عیب‌یابی بردهای الکترونیکی، شبیه سازی مدارات مختلف رو هم یاد میگیریم.
اگر علاقه مند به یادگیری موضوعات عنوان شده هستید، به کانال یوتیوب من با آدرس زیر سر بزنید.
https://www.youtube.com/@aKaReZa75
۲۲-بهمن-۱۳۹۱, ۱۰:۰۱:۵۷
وب سایت ارسال‌ها
پاسخ
ehsancompany آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 10
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 43
( 2 تشکر در 2 ارسال )
ارسال: #8
RE: Debounce=Int0
(۲۲-بهمن-۱۳۹۱, ۱۰:۰۱:۵۷)h.unique نوشته است: ببین رو برد بوردکه گذاشتی کلید وصل کردی یا از سیم به جای کلید استفاده میکنی؟

کلید گزاشتم

GOD ,YOU KNOW BETTER
۲۲-بهمن-۱۳۹۱, ۲۰:۳۶:۰۸
ارسال‌ها
پاسخ
ehsancompany آفلاین
كاربر تک ستاره
*

ارسال‌ها: 38
موضوع‌ها: 10
تاریخ عضویت: خرداد ۱۳۹۰

تشکرها : 43
( 2 تشکر در 2 ارسال )
ارسال: #9
RE: Debounce=Int0
(۲۰-بهمن-۱۳۹۱, ۲۳:۱۸:۰۳)sharin نوشته است: بستگي دارهه سيگنال وقفه رو چي توليد مي كنه ...
اگر كليد هست ، حتما طراحيه كليدتون بد هست. يعني مشكل سخت افزاري. ( در پروتوس اينجور موارد دخالتي ندارن )
علت اينه كه كنتاكت سخت افزاري باعث لرزش مي شه و همين باعث مي شه بجايي كه ميكرو يه بار به وقفه برهه ، چند بار به وقفه برهه ...
براي رفعش به صورت سخت افزاري بايد از خازن با اندازه ي مناسب استفاده كنيد.
تو Net سرچ بزنيد ، طراحي هاي مختلف رو مي تونيد ببينيد.

موفق باشيد.
ممنو از شما من
پایه Int0 رو با یه 10 میکرو فاراد دادم به vcc مشکل حل شد

GOD ,YOU KNOW BETTER
۲۳-بهمن-۱۳۹۱, ۰۱:۱۵:۱۵
ارسال‌ها
پاسخ


موضوعات مرتبط با این موضوع...
موضوع نویسنده پاسخ بازدید آخرین ارسال
  [فوری] مشكل در چك كردن كليد با دستور debounce velakat 12 12,149 ۱۱-دى-۱۳۹۲, ۰۰:۵۸:۱۵
آخرین ارسال: sharin

پرش به انجمن:


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

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