اطلاعیه

Collapse
No announcement yet.

تغییر سرعت کلید

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    تغییر سرعت کلید

    سلام دو تا کلید دارم که تو کدهام با دستور Count++ و Count-- و پله ی یه دونه کم و زیاد میشن عدد مورد نظر و در lcd نمایش داده میشن.
    من الان اینو می خوام انجام بدم: مثلا رو کلید افزایش 10 یا 15 ثانیه همانطور نگه داشتم با سرعت شمارش انجام بشه و بره بالا باید چیکار کنم؟؟
    لطفا راهنمایی کنید

    #2
    پاسخ : تغییر سرعت کلید

    با سلام
    باید توی کدتون علاوه بر "فشرده شدن" کلید، "فشرده موندن" و "قطع شدن" کلید رو هم بخونید.
    مثلا هر 100 میلی ثانیه کلید رو چک کنین.
    اگه فشرده شده بود یکی به متغیر اضافه کنین و یکی از اون 100 میلی ثانیه کم کنین.
    اگه قطع بود تاخیر خوندن رو روی همون 100 میلی ثانیه بذارید.
    کمترین توقع از یک فرد تحصیلکرده، دانستن املای صحیح کلمات است.

    دیدگاه


      #3
      پاسخ : تغییر سرعت کلید

      نوشته اصلی توسط نو رسیده نمایش پست ها
      با سلام
      باید توی کدتون علاوه بر "فشرده شدن" کلید، "فشرده موندن" و "قطع شدن" کلید رو هم بخونید.
      مثلا هر 100 میلی ثانیه کلید رو چک کنین.
      اگه فشرده شده بود یکی به متغیر اضافه کنین و یکی از اون 100 میلی ثانیه کم کنین.
      اگه قطع بود تاخیر خوندن رو روی همون 100 میلی ثانیه بذارید.
      سلام ممنون.
      آیا امکانش هست برای کد مثالی برام بزنید ؟

      دیدگاه


        #4
        پاسخ : تغییر سرعت کلید

        برای این کار فرقی بین زدن کلید و نگه داشتنش نمیکنه
        یعنی به ازای هر x ثانیه نگه داشتن کلید یه عدد بیشتر روی متغیر(ال سی دی) قرار میگیره
        همونطور که دوستمون گفتن :

        for(PIND.0==1)
        {
        counter++;
        //toye in ghesmat cout kon ya namayesh bede roye lcd
        delay_ms(100);
        }

        حالا اگر این کد بازم مشکلی داشت ، مثل این که اون تاخیر delay زیاد باشه و دکمه رو تند تند بزنی میکرو حساب نکنه باید فکر کنی و باگش رو از بین ببری.مثلا برای همین باگی که خودم گفتم میتونی تاخیر زمانی رو کوچیک کنی و به چند قسمت تقسیمش کنی مثل کد زیر :

        for(PIND.0==0(
        counter++;
        //kode namayesh roye LCD ya harchi k mikhay
        delay_ms(100)
        if(PIND.0==1(
        break;
        [FONT=Yekan]delay_ms(100)[/FONT]
        [FONT=Yekan]if(PIND.0==1([/FONT]
        [FONT=Yekan]break;[/FONT][FONT=Yekan]delay_ms(100)[/FONT]
        [FONT=Yekan]if(PIND.0==1([/FONT]
        [FONT=Yekan]break;[/FONT][FONT=Yekan]delay_ms(100)[/FONT]
        [FONT=Yekan]if(PIND.0==1([/FONT]
        [FONT=Yekan]break;[/FONT][FONT=Yekan]delay_ms(100)[/FONT]
        [FONT=Yekan]if(PIND.0==1([/FONT]
        [FONT=Yekan]break;[/FONT][FONT=Yekan]delay_ms(100)[/FONT]
        [FONT=Yekan]if(PIND.0==1([/FONT]
        [FONT=Yekan]break;[/FONT]
        }

        دیدگاه

        لطفا صبر کنید...
        X