PDA

View Full Version : سوالی در رابطه با کلید های فشاری



SEZAR.CO
پنج شنبه 07 دی 1391, 16:56 عصر
با عرض سلام
یه جایی خوندم که می گفت وقتی یه کلید فشاری را فشار می دهید چندین پالس عین خم یا فواصل زمانی کم درست می کنه چون مکانیکی
آیا این حرف راست

KING AMIN
شنبه 09 دی 1391, 17:46 عصر
فکر کنم همون موقع که اولن پالس می گیره تا یه مدت نگیره تا قطار از بین بره

hamid-nic
شنبه 09 دی 1391, 22:03 عصر
فاصله ی بین وصل و قطع و برعکس یک پالس نامنظمی ایجاد میشه که با Debounce کنترل میشه .

SEZAR.CO
پنج شنبه 21 دی 1391, 21:59 عصر
با عرض سلام
دوستم خوبم حمید اقا
اصلا منظور شمارو نفهمیدم
خودم جواب می دونستم فقط خواستم بخش امتحان کنم
وقتی کلید می زنیم چند پالس ایجاد میشه
برای جلو گیری از خواندن تمام پالس ها توسط میکر کنترلر وقتی اولی گرفتیم کار انجام میدهیم
بعد صبر می کنیم تا تمام پالس ها بروند
این مدت کسری از ثانیه است

hamid-nic
جمعه 22 دی 1391, 00:33 صبح
دوست عزیز منظور من و شما یکی هست ولی این مطلبی که گفتید درست نیست :

برای جلو گیری از خواندن تمام پالس ها توسط میکر کنترلر وقتی اولی گرفتیم کار انجام میدهیم
بعد صبر می کنیم تا تمام پالس ها بروندهمون طور که می دونید در هنگام فشار دادن کلید چیزی که من و شما انتظار داریم مثل تصویر زیر است :

98219

اما در عمل مثل تصویر زیر است :
98218

زمانی که پالس ثابت بشه میکرو نمونه برداری را آغاز میکنه که این مدت را می توانیم بصورت نرم افزاری تعریف کنیم که این پالس های مکرر و نا منظم را در نظر نگیریم به این عمل ایجاد شده Contact bounce گفته میشه که برای برای حذف آن عبارت debounce بکار گرفته میشه .


این هم تصویر یک Contact bounce بر روی اسکوپ

http://www.micahcarrick.com/files/atmega8/tutorial_3/debounce.png

SEZAR.CO
جمعه 22 دی 1391, 00:36 صبح
کا ملا درست و بدون مشکل

Abbas Amiri
جمعه 22 دی 1391, 01:48 صبح
با عرض سلام
دوستم خوبم حمید اقا
اصلا منظور شمارو نفهمیدم
خودم جواب می دونستم فقط خواستم بخش امتحان کنم
وقتی کلید می زنیم چند پالس ایجاد میشه
برای جلو گیری از خواندن تمام پالس ها توسط میکر کنترلر وقتی اولی گرفتیم کار انجام میدهیم
بعد صبر می کنیم تا تمام پالس ها بروند
این مدت کسری از ثانیه است

سلام

معمولااز اولین پالس استفاده نمیشه بلکه بعداز اولین پالس پس از یک تاخیر نمونه دیگری از ورودی گرفته میشود ، درصورت وجود دوباره ، فشرده شدن کلیدقطعی خواهدشد.

mehran901
شنبه 23 دی 1391, 14:55 عصر
به راحتی با دادن یک مقدار به 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