با عرض سلام
یه جایی خوندم که می گفت وقتی یه کلید فشاری را فشار می دهید چندین پالس عین خم یا فواصل زمانی کم درست می کنه چون مکانیکی
آیا این حرف راست
با عرض سلام
یه جایی خوندم که می گفت وقتی یه کلید فشاری را فشار می دهید چندین پالس عین خم یا فواصل زمانی کم درست می کنه چون مکانیکی
آیا این حرف راست
فکر کنم همون موقع که اولن پالس می گیره تا یه مدت نگیره تا قطار از بین بره
فاصله ی بین وصل و قطع و برعکس یک پالس نامنظمی ایجاد میشه که با Debounce کنترل میشه .
با عرض سلام
دوستم خوبم حمید اقا
اصلا منظور شمارو نفهمیدم
خودم جواب می دونستم فقط خواستم بخش امتحان کنم
وقتی کلید می زنیم چند پالس ایجاد میشه
برای جلو گیری از خواندن تمام پالس ها توسط میکر کنترلر وقتی اولی گرفتیم کار انجام میدهیم
بعد صبر می کنیم تا تمام پالس ها بروند
این مدت کسری از ثانیه است
دوست عزیز منظور من و شما یکی هست ولی این مطلبی که گفتید درست نیست :
همون طور که می دونید در هنگام فشار دادن کلید چیزی که من و شما انتظار داریم مثل تصویر زیر است :برای جلو گیری از خواندن تمام پالس ها توسط میکر کنترلر وقتی اولی گرفتیم کار انجام میدهیم
بعد صبر می کنیم تا تمام پالس ها بروند
اما در عمل مثل تصویر زیر است :
زمانی که پالس ثابت بشه میکرو نمونه برداری را آغاز میکنه که این مدت را می توانیم بصورت نرم افزاری تعریف کنیم که این پالس های مکرر و نا منظم را در نظر نگیریم به این عمل ایجاد شده Contact bounce گفته میشه که برای برای حذف آن عبارت debounce بکار گرفته میشه .
این هم تصویر یک Contact bounce بر روی اسکوپ
کا ملا درست و بدون مشکل
به راحتی با دادن یک مقدار به Debounce از همون اول کار مشکل حل میشه... و توسط همین دستور هم کلید رو چک کنین ... ( این که اولین پالس رو بگیرین ما بقی رو صبر کنین تا حذف بشن و اینا اصلا روش کاربردی نیست... )
با این که می دونین ولی سینتکسش همDEBOUNCE Px.y , state , label [ , SUB]
Config Debounce = 30
Do
waitms 100
Debounce Pind.0 , 0 , Pr , Sub
loop
pr:
toggle portd.1
return