اطلاعیه

Collapse
No announcement yet.

راهنمایی برای یک برنامه

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

    راهنمایی برای یک برنامه

    سلام یه راهنمایی میخواستم
    جایی گیر کردم که با یک دکمه بتونم یه پین میکرو رو 0 و یک کنم، از وقفه هم نمی تونم استفاده کنم چون چهارتا کلیده این کد زیر رو نوشتم،کار هم کرد
    اما باید حداقل 2 3 بار کلیک کنم رو کلید تا 1 بشه و دو سه بار دیگه کلیک کنم تا 0 بشه

    کد:
                    if(PINC.3==1){
            PORTD.3=1;  
              if (PIND.3==1 && PINC.3==1)
             PORTD.3=0;

    #2
    پاسخ : راهنمایی برای یک برنامه

    نوشته اصلی توسط loverdead
    سلام یه راهنمایی میخواستم
    جایی گیر کردم که با یک دکمه بتونم یه پین میکرو رو 0 و یک کنم، از وقفه هم نمی تونم استفاده کنم چون چهارتا کلیده این کد زیر رو نوشتم،کار هم کرد
    اما باید حداقل 2 3 بار کلیک کنم رو کلید تا 1 بشه و دو سه بار دیگه کلیک کنم تا 0 بشه

    کد:
                    if(PINC.3==1){
            PORTD.3=1;  
              if (PIND.3==1 && PINC.3==1)
             PORTD.3=0;
    ببینید اگر دستتون رو نگهدارید چی میشه
    ایا کد های برنامه اصلیتون خیلی زیاده ؟
    ایا در لحظه ای که دارید کلیک میکنید delay در حال اجرا نیست؟
    به نظر من همه باید برنامه نویسی را یاد بگیرند زیرا برنامه نویسی طریقه ی فکر کردن را به شما یاد میدهد.
    @@@@@@@@@@*بیل گیتس*@@@@@@@@@@

    دیدگاه


      #3
      پاسخ : راهنمایی برای یک برنامه

      نه کد هام همیناهاست برای چهار پورت،
      بازم 1 نمیشه اگه نگه دارم از delay استفاده کردم بازم به مشکل خوردم کلیدهام به صورت لچ نیستند یک لحظه 1 میشن و صفر میشن

      دیدگاه


        #4
        پاسخ : راهنمایی برای یک برنامه

        نوشته اصلی توسط liamplm1382
        ببینید اگر دستتون رو نگهدارید چی میشه
        ایا کد های برنامه اصلیتون خیلی زیاده ؟
        ایا در لحظه ای که دارید کلیک میکنید delay در حال اجرا نیست؟
        تو برنامه خط بالا d.3 رو یک کردی
        خط پایین d.0 رو صفر کردی!!
        منظورت چی بوده ؟؟ اگه کاربرد کلیدت همینه که گفتی برنامه رو تغییر بده

        دیدگاه


          #5
          پاسخ : راهنمایی برای یک برنامه

          منظورم این بوده که وقتی کلید رو فشار دادم pinC.3=1 میشه که شرطش کردم
          بعد portD.3=1 کنه
          تا اینجا با یک کلیک روشن شد
          حالا برا خاموش کردن
          اگر pind.3 یک باشه و pinc.3 یک شه
          اینجاست که portd.3 رو صفر کنه

          دیدگاه


            #6
            پاسخ : راهنمایی برای یک برنامه

            ببنید الان عملکرد اینجوریه:
            پین c.3 چک میشه اگه 1 بود میاد خط بعدی
            d.3 رو یک میکنه
            حالا همزمان هم d.3و c.3 رو چک میکنه
            خوب شما توجه کن وقتی دستت رو کلید میزاری هزاربار این خط اجرا میشه - یعنی بین خط قبلی و این خط به زمان بیکاری نیاز داره میکرو


            دیدگاه


              #7
              پاسخ : راهنمایی برای یک برنامه

              ممنون از پاسختون خب راه حل چیه چه جوری یه وقفه ای بندازم وسطش ?

              دیدگاه


                #8
                پاسخ : راهنمایی برای یک برنامه

                شما میخوای برنامت دقیقا چیکار کنه مثلا اگه بخوای یه جوری باشه که با زدن یک کلید یه پایه تغیر وضعیت بده اینو نگاه کن[code=c]
                #include <mega16a.h>
                bit key ;
                // Declare your global variables here

                void main(void)
                {

                DDRD=0xFF;
                PORTC=0xFF;
                while (1)
                {
                if ((PINC.3==0)&&(key==0)){PORTD.3=~PORTD.3;k ey=1;}
                if (PINC.3==1) key=0;}
                }
                [/code]
                به نظر من همه باید برنامه نویسی را یاد بگیرند زیرا برنامه نویسی طریقه ی فکر کردن را به شما یاد میدهد.
                @@@@@@@@@@*بیل گیتس*@@@@@@@@@@

                دیدگاه


                  #9
                  پاسخ : راهنمایی برای یک برنامه

                  کدی که من میخوام این جوریه PINC.2==1 بشه PORTD.3=1 شه،، اگر دوباره PINC.2==1 بشه پین PORTD.3=0 صفر بشه

                  دیدگاه


                    #10
                    پاسخ : راهنمایی برای یک برنامه

                    [code=c]if(PIND.2==1) PORTD.3 = ~(PORTD.3);[/code]
                    [img width=281 height=100]http://cdn.persiangig.com/preview/acPBCNLNNr/images.jpg[/img]

                    دیدگاه


                      #11
                      پاسخ : راهنمایی برای یک برنامه

                      دوستان با گذاشتن delay مشکل ایشون حل میشه
                      من زبان سی بلد نیستم کسی میتونه برنامه وقفه 1 ثانیه برای ایشون بنویسه

                      دیدگاه


                        #12
                        پاسخ : راهنمایی برای یک برنامه

                        اینجا یه نفر به مشابه این مشکل پاسخ داده

                        http://www.eca.ir/forum2/index.php?topic=117752.msg767683#msg767683
                        If the wind will not serve, take to the oars

                        دیدگاه

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