سلام
شما باید یه همچین چیزی بنویسی:
کد:
while(1) {
if(PIN) {
Ring = 0;
do {
Ring++;
Delay_ms(100);
}while(PIN & (Ring < 30));
if(PIN) {
//3SecOK
while(PIN);
}else {
//No3Sec
}
}
}
اگه پین 1 شه میره تو حلقه و در صورت 1 ماندن بعد از 3 ثانیه از حلقه بیرون میاد و در شرط بررسی میشه
که پین هنوز یک هست یانه اگرم پین رو تو حلقه 0 کنی که بازم میاد بیرون و با بررسی پین در شرط معلوم
میشه که پین 0 هست و 3 ثانیه فشرده نشده
اون while آخری هم برای اینه که بعد از 3 ثانیه که کلید رو گرفتی و شرطمون ok شد تو حلقه
بمونه تا کلید رو ول کنی
موفق باشی