اطلاعیه

Collapse
No announcement yet.

استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

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

    #16
    پاسخ : استفاده از دستور int

    نوشته اصلی توسط zoheyr79
    باشه ممنون
    اما نمیدونم چطور byte رو به 0 و 1 تبدیل کنم از bit هم نمیشه استفاده کرد
    متوجه نشدم ...
    منظورتون اینه که میخواین بیتهای یک بایت رو تک تک بیرون بکشید ؟؟
    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
    معرفی نرم افزار Codewizard PWM
    با من بیشتر آشنا شوید

    دیدگاه


      #17
      پاسخ : استفاده از دستور int

      نوشته اصلی توسط سامان اسدی
      متوجه نشدم ...
      منظورتون اینه که میخواین بیتهای یک بایت رو تک تک بیرون بکشید ؟؟
      منظورم اینه که با هر بار زدن میکرو سوییچ یک عدد به متغیر اضافه بشه و از یک شروع بشه و تا سه بره وقتی که متغیر روی سه بود و دوباره میکروسوییچ رو زدم بره روی یک و دوباره....

      اضافه شده در تاریخ :
      کسی نمیدونه چطور باید این متغیر رو بدست بیارم

      دیدگاه


        #18
        پاسخ : استفاده از دستور int

        نوشته اصلی توسط zoheyr79
        منظورم اینه که با هر بار زدن میکرو سوییچ یک عدد به متغیر اضافه بشه و از یک شروع بشه و تا سه بره وقتی که متغیر روی سه بود و دوباره میکروسوییچ رو زدم بره روی یک و دوباره....
        برادر چرا عصبانی میشی ؟...
        موقع عصبانیت یک لیوان آب سرد بنوشید ... خوب فکر کنید ... شاید فحشهای بهتری یادتون اومد !!! :-)) =))
        شوخی بود خواستم بخندی ... :biggrin:

        از یک تا سه باشه خوبه ؟؟
        بسکام میخوای ؟؟
        [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
        معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
        معرفی نرم افزار Codewizard PWM
        با من بیشتر آشنا شوید

        دیدگاه


          #19
          پاسخ : پاسخ : استفاده از دستور int

          نوشته اصلی توسط سامان اسدی
          برادر چرا عصبانی میشی ؟...
          موقع عصبانیت یک لیوان آب سرد بنوشید ... خوب فکر کنید ... شاید فحشهای بهتری یادتون اومد !!! :-)) =))
          شوخی بود خواستم بخندی ... :biggrin:

          از یک تا سه باشه خوبه ؟؟
          بسکام میخوای ؟؟
          من عصبانییییییییییییم؟؟؟ :angry: :angry: من عععععععععععععععععصبانیم؟؟؟ :angry:
          خخخخخخخ شوخی کردم من اصلا عصبانی نبودم برادر. کلا تو طول روز اینطوریم =>
          صفر تا سه باشه بیتره
          بله بسکام فقط لطفا یه چیز ساده باشه منم بفهمم :mrgreen:

          دیدگاه


            #20
            پاسخ : پاسخ : استفاده از دستور int

            نوشته اصلی توسط zoheyr79
            من عصبانییییییییییییم؟؟؟ :angry: :angry: من عععععععععععععععععصبانیم؟؟؟ :angry:
            خخخخخخخ شوخی کردم من اصلا عصبانی نبودم برادر. کلا تو طول روز اینطوریم =>
            صفر تا سه باشه بیتره
            بله بسکام فقط لطفا یه چیز ساده باشه منم بفهمم :mrgreen:
            [code=qbasic]
            $regfile = "m8def.dat"
            $crystal = 8000000
            $hwstack = 100
            $swstack = 100
            $framesize = 320

            Config Portb.0 = Input
            Config Portd = Output

            Pull_up Alias 1
            Sw Alias Pinb.0


            Portb.0 = Pull_up

            Dim A As Byte


            Do
            If Sw = 0 Then
            Waitms 20
            If Sw = 0 Then
            Incr A
            If A = 4 Then A = 0
            Portd = A
            While Sw = 0 : Wend
            End If
            End If
            Loop
            End

            [/code]
            موفق باشید
            [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
            معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
            معرفی نرم افزار Codewizard PWM
            با من بیشتر آشنا شوید

            دیدگاه


              #21
              پاسخ : پاسخ : استفاده از دستور int

              نوشته اصلی توسط سامان اسدی
              [code=qbasic]

              IF A = 4 THEN A = 0
              [/code]
              موفق باشید
              ممنون اصل کاریو پیدا کردم
              به نظر شما نمیشه اینطوری نوشت؟؟؟ تا بایتو سه یا چهار تایی کرد :-?
              کد:
              $regfile=m8def.dat
              $crystal=8000000
              
              dim x as byte
              
              x<4
              x>0

              دیدگاه


                #22
                پاسخ : پاسخ : استفاده از دستور int

                نوشته اصلی توسط zoheyr79
                ممنون اصل کاریو پیدا کردم
                به نظر شما نمیشه اینطوری نوشت؟؟؟ تا بایتو سه یا چهار تایی کرد :-?
                کد:
                $regfile=m8def.dat
                $crystal=8000000
                
                dim x as byte
                
                x<4
                x>0
                ها ؟؟؟ :surprised:
                این چیه دیگه ؟؟
                این که خطا داره ...
                بایتو سه یا چهارتایی کرد ؟؟ منظورتون چیه ؟؟
                اگر منظورتون اینه که از 0 تا 4 باشه باید اون 4 رو به 5 تغییر بدهید ...
                موفق باشید
                [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                معرفی نرم افزار Codewizard PWM
                با من بیشتر آشنا شوید

                دیدگاه


                  #23
                  پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                  سلام دوستان
                  چرا خودتون رو اذیت می کنید :biggrin:
                  خیلی سادست
                  کد:
                  $regfile = "m16adef.dat"
                  $crystal = 8000000
                  
                  Config Porta.0 = Output
                  Config Porta.1 = Output
                  Config Porta.2 = Output
                  Config Porta.3 = Input
                  
                  A:
                  
                  Waitms 120
                  
                  Do
                  Porta = &H01
                  If Pina.0 = 1 Then Goto B
                  Loop
                  
                  B:
                  
                  Waitms 120
                  
                  Do
                  Porta = &H02
                  If Pina.0 = 1 Then Goto C
                  Loop
                  
                  C:
                  
                  Waitms 120
                  
                  Do
                  Porta = &H04
                  If Pina.0 = 1 Then Goto A
                  Loop
                  
                  end 'end program

                  دیدگاه


                    #24
                    پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                    نوشته اصلی توسط alireza shabani parsa
                    سلام دوستان
                    چرا خودتون رو اذیت می کنید :biggrin:
                    خیلی سادست
                    کد:
                    $regfile = "m16adef.dat"
                    $crystal = 8000000
                    
                    Config Porta.0 = Output
                    Config Porta.1 = Output
                    Config Porta.2 = Output
                    Config Porta.3 = Input
                    
                    A:
                    
                    Waitms 120
                    
                    Do
                    Porta = &H01
                    If Pina.0 = 1 Then Goto B
                    Loop
                    
                    B:
                    
                    Waitms 120
                    
                    Do
                    Porta = &H02
                    If Pina.0 = 1 Then Goto C
                    Loop
                    
                    C:
                    
                    Waitms 120
                    
                    Do
                    Porta = &H04
                    If Pina.0 = 1 Then Goto A
                    Loop
                    
                    end 'end program
                    این که پیچیده تر شده !!!
                    [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                    معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                    معرفی نرم افزار Codewizard PWM
                    با من بیشتر آشنا شوید

                    دیدگاه


                      #25
                      پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                      نوشته اصلی توسط سامان اسدی
                      این که پیچیده تر شده !!!
                      شرمنده آقای اسدی
                      چرا :cry2: :cry2: :cry2: :cry2: :angry:

                      دیدگاه


                        #26
                        پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                        نوشته اصلی توسط alireza shabani parsa
                        سلام دوستان
                        چرا خودتون رو اذیت می کنید :biggrin:
                        خیلی سادست
                        کد:
                        $regfile = "m16adef.dat"
                        $crystal = 8000000
                        
                        Config Porta.0 = Output
                        Config Porta.1 = Output
                        Config Porta.2 = Output
                        Config Porta.3 = Input
                        
                        A:
                        
                        Waitms 120
                        
                        Do
                        Porta = &H01
                        If Pina.0 = 1 Then Goto B
                        Loop
                        
                        B:
                        
                        Waitms 120
                        
                        Do
                        Porta = &H02
                        If Pina.0 = 1 Then Goto C
                        Loop
                        
                        C:
                        
                        Waitms 120
                        
                        Do
                        Porta = &H04
                        If Pina.0 = 1 Then Goto A
                        Loop
                        
                        end 'end program
                        سلام :byeدستت درد نکنه ولی من میخوام کار با دستور int رو یاد بگیرم و مچنین برنامه شما یکم زیاده و همینو میشه با همون چند خط ساده نوشت


                        نوشته اصلی توسط سامان اسدی
                        ها ؟؟؟ :surprised:
                        این چیه دیگه ؟؟
                        این که خطا داره ...
                        بایتو سه یا چهارتایی کرد ؟؟ منظورتون چیه ؟؟
                        اگر منظورتون اینه که از 0 تا 4 باشه باید اون 4 رو به 5 تغییر بدهید ...
                        موفق باشید

                        بازم سوتی دادم میدونم :mrgreen:
                        حالا اینکه تا چند باشه مهم نیست

                        آقا سامان میدونی مشکل این برنامه چیه
                        برا آزمایش کار با همون دستور int نوشتم ولی موتور فقط به یک طرف میچرخه
                        کد:
                        $regfile = "m8def.dat"
                        $crystal = 8000000
                        
                        Config Portc = Output
                        
                        Config Int0 = Falling
                        Enable Int0
                        Enable Interrupts
                        On Int0 Do1
                        
                        Dim Q As Byte
                        
                        Do
                        Loop
                        
                        
                        Do1:
                        Incr Q
                        If Q = 0 Then Goto M1
                        If Q = 1 Then Goto M2
                        If Q = 2 Then Q = 0
                        Return
                        
                        
                        M1:
                        Do
                        Reset Portc.0
                        Set Portc . 1
                        Loop
                        
                        
                        M2:
                        Do
                        Reset Portc.1
                        Set Portc.0
                        Loop

                        دیدگاه


                          #27
                          پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                          نوشته اصلی توسط alireza shabani parsa
                          شرمنده آقای اسدی
                          چرا :cry2: :cry2: :cry2: :cry2: :angry:
                          دشمنت شرمنده باشه عزیز
                          ایول ... خوشم میاد انتقاد پذیری ... این خصوصیت اخلاقی را همیشه به کار بگیر تا پیشرفت کنید ...
                          یکی از بچه های کامپیوتر بهم گفت از دستور Goto استفاده نکن ...
                          برنامه شما برای نوشتن آسان هست ولی برای تحلیل سخت ...
                          از همه بدتر اینکه اگر بخواهید برنامه را گسترش بدهید خیلی سخت میشه آن را گسترش داد ...
                          من هم مثل شما بودم ... ولی از اون موقع که اون حرف رو بهم زد دیدم واقعا راست میگه ...
                          هر بار که بخوام برنامه را گسترش بدم خیلی سخت میشه ...
                          نمیدونم چرا توی این سایت تاپیکی با عنوان روشهای صحیح برنامه نویسی نیست ...
                          شاید به خاطر زحمت بسیار زیادش هست ...
                          اگر شد خودم این تاپیک رو میزنم ... البته اگر وقت کردم ...

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

                          بازم سوتی دادم میدونم :mrgreen:
                          حالا اینکه تا چند باشه مهم نیست

                          آقا سامان میدونی مشکل این برنامه چیه
                          برا آزمایش کار با همون دستور int نوشتم ولی موتور فقط به یک طرف میچرخه
                          کد:
                          $regfile = "m8def.dat"
                          $crystal = 8000000
                          
                          Config Portc = Output
                          
                          Config Int0 = Falling
                          Enable Int0
                          Enable Interrupts
                          On Int0 Do1
                          
                          Dim Q As Byte
                          
                          Do
                          Loop
                          
                          
                          Do1:
                          Incr Q
                          If Q = 0 Then Goto M1
                          If Q = 1 Then Goto M2
                          If Q = 2 Then Q = 0
                          Return
                          
                          
                          M1:
                          Do
                          Reset Portc.0
                          Set Portc . 1
                          Loop
                          
                          
                          M2:
                          Do
                          Reset Portc.1
                          Set Portc.0
                          Loop
                          مشکلش اینه که موقعی که میگی Goto پرش میکنه به حلقه ای که بی نهایت هست ... و هیچ موقع از اون حلقه بیرون نمی آید ...
                          چرا برنامه را با دستور Select case نمینویسی ؟؟
                          [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                          معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                          معرفی نرم افزار Codewizard PWM
                          با من بیشتر آشنا شوید

                          دیدگاه


                            #28
                            پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                            نوشته اصلی توسط سامان اسدی
                            مشکلش اینه که موقعی که میگی Goto پرش میکنه به حلقه ای که بی نهایت هست ... و هیچ موقع از اون حلقه بیرون نمی آید ...
                            چرا برنامه را با دستور Select case نمینویسی ؟؟
                            نگرفتم چیشد :sad: مگه زمانی که ما int استفاده میکنیم با تحریک پایه int برنامه هرجا یاشه نمیره به بخشی که برای int دستور دادیم؟؟؟ پس هربار که پایه int تحریک شد باس بره به بخش do1 دیگه :eek:
                            آقا سامان باز دست بالا گرفتیا :mrgreen:
                            بنده شخصی مبتدی هستم و نمیدانم که دستور select case چه چیزی میباشد :mrgreen:

                            دیدگاه


                              #29
                              پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                              نوشته اصلی توسط zoheyr79
                              نگرفتم چیشد :sad: مگه زمانی که ما int استفاده میکنیم با تحریک پایه int برنامه هرجا یاشه نمیره به بخشی که برای int دستور دادیم؟؟؟ پس هربار که پایه int تحریک شد باس بره به بخش do1 دیگه :eek:
                              آقا سامان باز دست بالا گرفتیا :mrgreen:
                              بنده شخصی مبتدی هستم و نمیدانم که دستور select case چه چیزی میباشد :mrgreen:
                              برنامه را اینطور بنویسی بهتره
                              [code=qbasic]
                              $regfile = "m8def.dat"
                              $crystal = 8000000
                              $hwstack = 100
                              $swstack = 100
                              $framesize = 320

                              Config Portc = Output
                              Config Portd = Input
                              Config Int0 = Falling
                              On Int0 _int0
                              Enable Int0
                              Enable Interrupts

                              Dim A As Byte


                              Do

                              Loop
                              End

                              _int0:
                              Incr A
                              If A = 3 Then A = 1
                              Portc = A
                              Return[/code]
                              این مداری که گذاشتم را حتما به کار بگیرید ...
                              موفق باشید
                              [b]چگونه همه پایه های میکروکنترلر AVR را PWM کنیم؟
                              معرفی نرم افزارEasy 7segment (برای راه اندازی آسانتر 7segment )
                              معرفی نرم افزار Codewizard PWM
                              با من بیشتر آشنا شوید

                              دیدگاه


                                #30
                                پاسخ : استفاده از دستور int + تبدیل byte از 0 تا 256 به 0 تا 3

                                نوشته اصلی توسط سامان اسدی
                                برنامه را اینطور بنویسی بهتره
                                [code=qbasic]
                                $regfile = "m8def.dat"
                                $crystal = 8000000
                                $hwstack = 100
                                $swstack = 100
                                $framesize = 320

                                Config Portc = Output
                                Config Portd = Input
                                Config Int0 = Falling
                                On Int0 _int0
                                Enable Int0
                                Enable Interrupts

                                Dim A As Byte


                                Do

                                Loop
                                End

                                _int0:
                                Incr A
                                If A = 3 Then A = 1
                                Portc = A
                                Return[/code]
                                آقا سامان میشه مشکل برنامه ی خودمو درست کنید :cry:
                                آخه اینی که شما نوشتی من چیزی ازش سر در نمیارم و اگه بخوام یه جای دیگه از این دستور استفاده کنم به مشکل بر میخورم و همچنین برنامه شما که به یه قسمت دیگه پرش نمیخوره :cry:
                                ببخشید سرتونو درد آوردم

                                دیدگاه

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