اطلاعیه

Collapse
No announcement yet.

اتصال کلید به میکرو

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

    اتصال کلید به میکرو

    سلام بر همه ی دوستان عزیز و دوست داشتنی
    دوستان چطوری میتونم یه کلید رو به میکرو وصل کنم تا با هر بار فشار دادن و نگه داشتن اون فقط یه عملیات رو انجام بده مثلا اگر این کلید مربوط به یه شمارنده باشه وقتی اونو میزنم یه واحد به عدد شمارنده اضافه کنه و اگر اونو تو همین حالت نگه دارم تا زدن دوباره کلید تغییری در وضعیت اعداد شمارنده حاصل نشه

    #2
    پاسخ : اتصال کلید به میکرو

    اگر منظورتون رو درست متوجه شده باشم و مقدار اولیه پورت 1 باشه(قبل از زدن کلید)و پس از زدن کلید صفر بشه توی کد ویژن اینجوری میشه پیادش کرد
    (کلید به پین 0 پورت A متصله)
    کد:
    DDRA=0x00;
    PORTA=0xFF;
    char counter=0;
    while(PINA.0)
    {
    counter++;
    while(!PINA.0);
    }

    دیدگاه


      #3
      پاسخ : اتصال کلید به میکرو

      دوستمون اقا محمد طوری جواب داد که جایی واسه صحبت نذاشت

      دیدگاه


        #4
        پاسخ : اتصال کلید به میکرو

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

        دیدگاه


          #5
          پاسخ : اتصال کلید به میکرو

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

          do
          debounce pind.0 , 1 , me , sub
          loop

          me:
          set portb.0
          return
          هنگامي که چيزي مينويسي، کاري نکن تنها کسي که از مغزش استفاده کرده باشد ،مدادت باشد .

          \|/_\/_

          دیدگاه


            #6
            پاسخ : اتصال کلید به میکرو

            مهران جان ازت خیلی خیلی ممنونم اما یادم رفت بگم پروژه ی من باید به زبان سی باشه اما از شما بیسیکه

            دیدگاه


              #7
              پاسخ : اتصال کلید به میکرو

              توی AVR وقفه چند تا حالت داره که یکیش اینه که تا کلید وقفه رو نگه داشتی وقفه مدام از اول تا آخر اجرا می شه که این حالت درست اون چیزیه که شما می خواین اونطوری نشه .
              حالت های دیگشم یکیش حساس به لبه ی بالا رونده و اون یکیش حساس به لبه ی پایین روندست که اگه رو یکی از اون مدها بذارین همون چیزی میشه که می خواین .


              شما امتحان کردین و نتیجه نگرفتین؟

              دیدگاه


                #8
                پاسخ : اتصال کلید به میکرو

                هادی جان مرسی از پاسخت خیلی گلی
                در مورد سوالت باید بگم اصلا از وقفه سر در نمیارم چه برسه استفاده از اون

                دیدگاه


                  #9
                  پاسخ : اتصال کلید به میکرو

                  :angry:

                  دیدگاه


                    #10
                    پاسخ : اتصال کلید به میکرو

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

                    دیدگاه


                      #11
                      پاسخ : اتصال کلید به میکرو

                      شما بالا گفتین که با C کار میکنین .
                      توی کد ویژن اون عکسی رو که گذاشتم تو کد ویزاردش پیدا کنین ، بعد preview رو بزنین .
                      خودش تنظیمات مربوط به وقفه رو میاره . کپیش کنین به برنامتون .
                      ne
                      interrupt [EXT_INT0] void ext_int0_isr(void)
                      {
                      // Place your code here
                      }

                      اونجایی که نوشته place your code برنامتنونو مینویسین .همونیکه یه دونه اضافه میکنه .



                      اینارو تو main میزنین که تنظیمات مربوط به وقفست .
                      کد ویزارد همه ی اینا رو بهتون میده .


                      // External Interrupt(s) initialization
                      // INT0: On
                      // INT0 Mode: Falling Edge
                      // Interrupt on any change on pins PCINT0-5: Off
                      GIMSK=0x40;
                      MCUCR=0x02;
                      GIFR=0x40;

                      دیدگاه


                        #12
                        پاسخ : اتصال کلید به میکرو

                        دوستان به نتایج قابل قبولی رسیدم از همتون ممنونم :nice:

                        دیدگاه


                          #13
                          پاسخ : اتصال کلید به میکرو

                          p

                          دیدگاه

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