پیدا کردن بهترین روش برای اسکن کلید

soranarasteh

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


حالا می خوام در مورد همین استفاده از شستی از نظراتتون استفاده کنم.
فرض کنید در یک مدار یک شستی داریم که باید 3 عملیات مختلف رو انجام بده.

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

می خوام در این مورد راهنمایی کنید که چه الگوریتمی رو تا الان استفاده کردین که این خطاها و مشکلات رو نداشتین و مهمتر اینکه برای بهبود کدهاتون چه کارهایی کردین و مایلم ایده هامون رو به اشتراک بگذاریم.

ممنونم از همگی
 

Alma

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


حالا می خوام در مورد همین استفاده از شستی از نظراتتون استفاده کنم.
فرض کنید در یک مدار یک شستی داریم که باید 3 عملیات مختلف رو انجام بده.

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

می خوام در این مورد راهنمایی کنید که چه الگوریتمی رو تا الان استفاده کردین که این خطاها و مشکلات رو نداشتین و مهمتر اینکه برای بهبود کدهاتون چه کارهایی کردین و مایلم ایده هامون رو به اشتراک بگذاریم.

ممنونم از همگی

سوران داداش چه خبر به نتیجه ای رسیدی ؟؟؟
 

M.R.Abedini

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


حالا می خوام در مورد همین استفاده از شستی از نظراتتون استفاده کنم.
فرض کنید در یک مدار یک شستی داریم که باید 3 عملیات مختلف رو انجام بده.

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

می خوام در این مورد راهنمایی کنید که چه الگوریتمی رو تا الان استفاده کردین که این خطاها و مشکلات رو نداشتین و مهمتر اینکه برای بهبود کدهاتون چه کارهایی کردین و مایلم ایده هامون رو به اشتراک بگذاریم.

ممنونم از همگی
اقا سوران خیلی مایلم بدونم نتیجه تحقیقت چی شد ؟
 

ghiasvand

همکار جدید
سلام خدمت آقای اسدی و آقای آراسته و جمیع دوستان ،
بنده جهت کلید خوانی از تایمر استفاده می کنم ، وقفه تایمر را روی ده میلی ثانیه تنظیم می کنم .
دو تابع می نویسم با نام های

C:
key_update();
uint8_t key_read();


تابع کی آپدیت را داخل زیر برنامه وقفه تایمر قرار میدهم

C:
interrupt [TIMx_OVF] void ...
{
key_update();
}

و در زیر برنامه تابع کی آپدیت هر ۲۰۰ میلی ثانیه مقدار کلیدها را می خوانم و در یک متغیر از نوع
C:
volatile uint8_t key=0;
ذخیره می کنم

C:
void  key_update (void)
{
static uint8_t millis=0;
if(++millis >=20  &&  key==0)
{
millis=0;
key=PINx;
}
}

اینطوری لرزش یا بانز کلید هم گرفته میشه
بعد داخل تابع کی رید مقدار متغیر را داخل یک متغیر دیگه انتقال میدم و متغییر کی را صفر می کنم

C:
uint8_t  key_read(void)
{
uint8_t  temp=key;
key=0;
return temp;
}

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

C:
uint8_t  new_keycode;
while(1)
{
new_keycode=key_read();
if(new_keycode != 0)
{

//place hear your code

}
}

اساتید اگر روش و الگوریتم بهتری می دونند خوشحال می شویم با ما هم به اشتراک بزارند
 
آخرین ویرایش:
بالا پایین