اطلاعیه

Collapse
No announcement yet.

درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

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

    درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

    سلام!
    شرمنده عنوان بهتر از این به ذهنم نرسید! oo:
    من میخوام اگه یه شاستی را برای اولین بار فشار دادم ، یک متغیر مثلا X به 10 تقسیم بشه!
    و اگه دوباره شاستی را فشار دادم ، متغیر X در 10 ضرب بشه!
    کلا با هر بار فشار دادن یه بار ضرب بشه و یه بار تقسیم!
    کدش را به زبون C میخواستم اگه زحمتی نیست! :rolleyes:

    #2
    پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

    مثلا رو پورت A کلید داری.
    نشد بگو.

    کد:
    int a = 1;
    .
    .
    .
    .
    
    if(PORTA.0 == 1 && a==1){	
    	delay_ms(300);
    	a=0;	
    	x = x/10;
    	
    }
    else if(PORTA.0 == 1 && a==0){
    	delay_ms(300);
    	a=1;
    	x = x*10;
    }
    تاریک ترین وقت شب درست قبل از طلوعـــــــــــه ....

    دیدگاه


      #3
      پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

      نوشته اصلی توسط Yaser Julaee
      مثلا رو پورت A کلید داری.
      نشد بگو.

      کد:
      int a = 1;
      .
      .
      .
      .
      
      if(PORTA.0 == 1 && a==1){	
      	delay_ms(300);
      	a=0;	
      	x = x/10;
      	
      }
      else if(PORTA.0 == 1 && a==0){
      	delay_ms(300);
      	a=1;
      	x = x*10;
      }

      ممنون! ولی کد یکم اشکال داشت!
      اشکالشم رفع کردم ولی کار نکرد!
      اینم کدش..
      کد:
      if(PINC.0==1&&sw1==0){delay_ms(300);sw1=1;DLCD1(input_mv);}
        else if(PINC.0==1&&sw1==1){delay_ms(300);sw1=0;DLCD2(input_mv);}
      sw1 همون a هست
      فانکشن های DLCD هم همون عملیاتی هستند که میخوام انجام بشه!

      منم دقیقا قبل این که تاپیک بزنم رو همین کد خیلی کار کردم ولی هر کاری میکنم جواب نمیده!
      مثلا اون else ای که قبل شرط دوم گذاشتید ، چون تابع برای lcd هست و نیاز به while داره و اون else هم میاد توی while دیگه خاصیت خودش را از دست میده!

      دیدگاه


        #4
        پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

        دیگه کسی اطلاعی نداره؟

        دیدگاه


          #5
          پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

          با C زیاد کار نکردم ولی اگه با بیسیک بخوای میتونم برات بنویسم :nerd:
          چشم ها را باید شست ، جور دیگر باید دید . . .

          دیدگاه


            #6
            پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

            نوشته اصلی توسط hassantorabi
            با C زیاد کار نکردم ولی اگه با بیسیک بخوای میتونم برات بنویسم :nerd:
            مشکلی نیست!
            بنویسید ترجمه میکنم!

            دیدگاه


              #7
              پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

              مثلا اون else ای که قبل شرط دوم گذاشتید ، چون تابع برای lcd هست و نیاز به while داره و اون else هم میاد توی while دیگه خاصیت خودش را از دست میده!
              oo:

              شما داری یه تابع رو فراخوانی میکنی . دلیلی نداره else اثر خودش رو از دست بده !

              من هم همین به ذهنم میرسه . یه flag تعریف کنیم و در بلوک if دست کاریش کنیم !
              اِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
              کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

              دیدگاه


                #8
                پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

                سلام اینم برنامه بسکام ببین همونی هست که میخوای :read:
                [code=text]$regfile = "m8def.dat"
                $crystal = 4000000
                Config Lcd = 16 * 2
                Config Lcdpin = Pin , Db4 = Portb.0 , Db5 = Portb.1 , Db6 = Portb.2 , Db7 = Portb.3 , _
                Rs = Portb.4 , E = Portb.5
                Config Portc = Input
                Dim X As Byte , A As Byte , B As Byte
                Cursor Off
                A = 0
                X = 10
                Do
                Bitwait Pinc.0 , Set
                Waitms 200
                If A = 0 Then
                B = X / 10
                Cls
                Locate 1 , 1
                Lcd B
                Incr A
                Elseif A = 1 Then
                B = X * 10
                Cls
                Locate 1 , 1
                Lcd B
                Decr A
                End If
                Loop
                End[/code[/cod]][/code]
                چشم ها را باید شست ، جور دیگر باید دید . . .

                دیدگاه


                  #9
                  پاسخ : درخواست راهنمایی در مورد شاستیها و بر&

                  [code=c]int Num;
                  char Button=1;
                  int main(void)
                  {
                  DDRA=0x00;
                  PORTA = 0x02; //A.1 = Input with pull-up

                  Num = 5;
                  while (1)
                  {
                  if((PINA & 0x02)==0)
                  {
                  if(Button)
                  {
                  Button =0;
                  Num *=10;
                  }
                  else
                  {
                  Button =1;
                  Num /=10;
                  }

                  while((PINA & 0x02)==0);
                  }

                  }
                  }

                  [/code]

                  num همون عددی هست که بنا هست 10 برابر و تقسیم بر 10 بشه که اینجا int تعریف شده
                  کلید با لبه پایین فعال میشه
                  موفق باشید
                  امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                  دیدگاه


                    #10
                    پاسخ : پاسخ : درخواست راهنمایی در مورد شاستیها و بر&

                    نوشته اصلی توسط Abbas Sarami
                    [code=c]int Num;
                    char Button=1;
                    int main(void)
                    {
                    DDRA=0x00;
                    PORTA = 0x02; //A.1 = Input with pull-up

                    Num = 5;
                    while (1)
                    {
                    if((PINA & 0x02)==0)
                    {
                    if(Button)
                    {
                    Button =0;
                    Num *=10;
                    }
                    else
                    {
                    Button =1;
                    Num /=10;
                    }

                    while((PINA & 0x02)==0);
                    }

                    }
                    }

                    [/code]

                    num همون عددی هست که بنا هست 10 برابر و تقسیم بر 10 بشه که اینجا int تعریف شده
                    کلید با لبه پایین فعال میشه
                    موفق باشید

                    ممنونم!
                    حالا یه مشکل دگ!
                    با این کد تا وقتی که دستمون رو شاستی هست عملیات ها انجام میشه!
                    مثلا ما روی یه ال سی دی متن "HELLO" را داریم، من میخوام وقتی شاستی را فشار دادم "HELLO" به "GOOD BYE" تبدیل یشه و ثابت بمونه! ((با این کد تبدیل میشه ولی اگه دستم رو شاستی نباشه میره)).
                    همچنین میخوام اگه دوباره شاستی را فشار دادم "GOOD BYE " به "HELLO" تبدیل بشه و برعکس!

                    شرمنده اذیت شدید!
                    ممنون میشم راهنمایی کنید!

                    دیدگاه


                      #11
                      پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

                      نوشته اصلی توسط hosseinghaheri

                      ممنونم!
                      حالا یه مشکل دگ!
                      با این کد تا وقتی که دستمون رو شاستی هست عملیات ها انجام میشه!
                      مثلا ما روی یه ال سی دی متن "HELLO" را داریم، من میخوام وقتی شاستی را فشار دادم "HELLO" به "GOOD BYE" تبدیل یشه و ثابت بمونه! ((با این کد تبدیل میشه ولی اگه دستم رو شاستی نباشه میره)).
                      همچنین میخوام اگه دوباره شاستی را فشار دادم "GOOD BYE " به "HELLO" تبدیل بشه و برعکس!

                      شرمنده اذیت شدید!
                      ممنون میشم راهنمایی کنید!
                      مهندس این کد که با اون بالاییه فرقی نداره . برا چی به بالاییه ایراد گرفتید ؟ ( جسارت نباشه ، محض یادگیری میپرسم )
                      منطق جفتشون یکیه . همون داستان flag و دستکاریش تو بلوک if .
                      if های تو در تو حکم همون && ( تو شرط if تکی ) رو دارن .
                      اِنَّ الَّذِینَ یُحِبُّونَ أَنْ تَشِیعَ الْفاحِشَهُ فِی الَّذِینَ آمَنُوا لَهُمْ عَذابٌ أَلِیمٌ فِی الدُّنْیا وَ الْآخِرَهِ وَ اللَّهُ یَعْلَمُ وَ أَنْتُمْ لا تَعْلَمُونَ.
                      کسانى که دوست دارند زشتی ها در میان مردم با ایمان شیوع یابد عذاب دردناکى براى آنها در دنیا و آخرت است، و خداوند میداند و شما نمی‏دانید. (نور19)

                      دیدگاه


                        #12
                        پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

                        نوشته اصلی توسط سید محمدِ علوی
                        مهندس این کد که با اون بالاییه فرقی نداره . برا چی به بالاییه ایراد گرفتید ؟ ( جسارت نباشه ، محض یادگیری میپرسم )
                        منطق جفتشون یکیه . همون داستان flag و دستکاریش تو بلوک if .
                        if های تو در تو حکم همون && ( تو شرط if تکی ) رو دارن .
                        شما درست میگید ، نتیجه جفتشون هم یکیه ولی خوب جواب نمیده که نمیده!
                        کدش ظاهرا اسون به نظر میاد و ادم را بدجور درگیر میکنه!
                        من با این که کار اصلیم برنامه نویسی سیستم و شبکه هست اصلا فکر نمیکردم نتونم چینین کدی را بنویسم! ولی خو نمیشه!

                        دیدگاه


                          #13
                          پاسخ : پاسخ : درخواست راهنمایی در مورد شاستیها و بر&

                          نوشته اصلی توسط hosseinghaheri
                          با این کد تا وقتی که دستمون رو شاستی هست عملیات ها انجام میشه!
                          مثلا ما روی یه ال سی دی متن "HELLO" را داریم، من میخوام وقتی شاستی را فشار دادم "HELLO" به "GOOD BYE" تبدیل یشه و ثابت بمونه! ((با این کد تبدیل میشه ولی اگه دستم رو شاستی نباشه میره)).
                          همچنین میخوام اگه دوباره شاستی را فشار دادم "GOOD BYE " به "HELLO" تبدیل بشه و برعکس!
                          این که دیگه کاری نداره :-?? :-O
                          فرم کدی که من نوشتم فقط حساس به لبه هست و اگه دستت روی شاستی بمونه براش تاثیری نداره
                          [code=c]
                          while (1)
                          {
                          if((PINA & 0x02)==0)
                          {
                          if(Button)
                          {
                          Button =0;
                          lcd_clear();
                          lcd_gotoxy(0,0);
                          lcd_puts("HELLO"
                          }
                          else
                          {
                          Button =1;
                          lcd_clear();
                          lcd_gotoxy(0,0);
                          lcd_puts("GOOD BYE"
                          }

                          while((PINA & 0x02)==0);
                          }

                          }
                          [/code]

                          موفق باشید
                          امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                          دیدگاه


                            #14
                            پاسخ : پاسخ : درخواست راهنمایی در مورد شاستیها و بر&

                            نوشته اصلی توسط Abbas Sarami
                            این که دیگه کاری نداره :-?? :-O
                            فرم کدی که من نوشتم فقط حساس به لبه هست و اگه دستت روی شاستی بمونه براش تاثیری نداره
                            [code=c]
                            while (1)
                            {
                            if((PINA & 0x02)==0)
                            {
                            if(Button)
                            {
                            Button =0;
                            lcd_clear();
                            lcd_gotoxy(0,0);
                            lcd_puts("HELLO"
                            }
                            else
                            {
                            Button =1;
                            lcd_clear();
                            lcd_gotoxy(0,0);
                            lcd_puts("GOOD BYE"
                            }

                            while((PINA & 0x02)==0);
                            }

                            }
                            [/code]

                            موفق باشید
                            میدونم کاری نداره! من همین کد که الان فرستاید را با همون کد اولیه نوشتم!
                            ولی میخوام با قطع شدن شاستی دگ تصویر نپره!
                            به نظرم باید یه متغییر تعریف کنم که و مقدارش را با این کد بهش بدم ، و بعد دگ همیشه این متغییر را روی ال سی دی نشون بدم!
                            اما هر کاری میکنم نمیشه! این نوع متغییر ها به هم نمیخوره یا ارور های الکی الکی میگیره!

                            دیدگاه


                              #15
                              پاسخ : درخواست راهنمایی در مورد شاستیها و برنامه نویسیشان

                              ولی میخوام با قطع شدن شاستی دگ تصویر نپره!
                              یعنی چی نپره؟
                              مگه الان lcd پاک میشه؟؟؟؟!!!!!
                              باید شستی را به زمین وصل کنید و یک پول اپ هم براش بذاری
                              کد را یکبار تحلیل کن چی نوشته شده
                              حواست هم به bounce کلید باشه اگه مشکل bounce داری یه delay به اندازه 50 میلی ثانیه بذار تا وضعیت شستی stable بشه
                              اخیرا تاپیک های جالبی توی تالار گذاشته میشه، قبلاً موضوعات تخصصی تر بود %-( :-??


                              موفق باشید
                              امام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است

                              دیدگاه

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