اطلاعیه

Collapse
No announcement yet.

مشکل با button

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

    مشکل با button

    سلام ببخشید میخوام بگم اکه دکمه رو فشار داد و رها کرد یه کار واسم بکنه دفعه بعدی که فشار داد و رها کرد یه کار دیگه
    میشه بفرمایید دستورش با کدویژن چی میشه :cry2:
    ممنون

    #2
    پاسخ : مشکل با button

    یکی از پایه ها رو ورودی تعریف می کنی

    DDRB.0=1

    مقدارش رو صفر می دی
    PORTB.0=0

    توی حلقه مقدار کلید رو می خونی
    کد:
    if(PINB.0==1)
    {
    کلید زده شده
    }

    البته فعلا خودم در حال یادگیری هستم
    ندن ساقی صفا اهلی ، غم دنیادن آیریلماز ** گتیر دولدور گینه جامی ، بالیخ دریادن آیریلماز
    غنیمتدیر بو دم ساقی ، گتیر دولدور گنه جامی ** جهاندا رسمدور عاشق ، می و مینادن آیریلماز

    دیدگاه


      #3
      پاسخ : مشکل با button

      راه استاندارش اینه که فرضا با یه مقاومت 4.7 کیلو pull up کنی (البته بهتره با یک خازن 100 نانو یا یک میکرو هم زمینش کنی)و اون پایه رو بدی به اینتراپت میکروت.
      شما در این حالت وقتی کلید رو فشار میدین یک لبه پایین رونده دارین و وقتی رها میکنید بک لبه بالا رونده.
      شما در اصل اون لبه بالا رونده رو میخواین و باید اینتراپت متصل رو با لبه بالا رونده تنظیم کنید.

      دیدگاه


        #4
        پاسخ : مشکل با button

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


        int key_pressed = 0;

        while(1)
        {

        while(PINA.0 == 1); //waite until key down
        while(PINA.0 == 0); //waite until key up

        if(key_pressed == 0) { //do sth}
        if(key_pressed == 1) { //do sth}
        if(key_pressed == 2) { //do sth}

        key_pressed ++;
        if(key_pressed > 2) key_pressed = 0;
        }

        برای این کار پورت A.0 را با یک مقاومت 10K پول پ کنید
        توضیحات فقط اینکه متغییر key_pressed تعداد کلیدهای زده شده را حساب میکند
        همون جوری که میخواستید وقتی کلید بالا آمد دستور شما اجرا میشود

        دیدگاه


          #5
          پاسخ : مشکل با button

          راه استاندارش اینه که فرضا با یه مقاومت 4.7 کیلو pull up کنی (البته بهتره با یک خازن 100 نانو یا یک میکرو هم زمینش کنی)
          از پول اپ داخلی هم میشه استفاده کرد.
          چيزي را بگو که بتواني بنويسي
          چيزي را بنويس که بتواني امضا کني
          چيزي را امضا کن که بتواني به آن عمل کني (ناپلئون)

          دیدگاه

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