اطلاعیه

Collapse
No announcement yet.

رقص نور عجیب

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

    رقص نور عجیب

    میخوام 8 تا led متصل به یک پورت m8 روبه این صورت راه اندازی کنم پین یک هر 50ms روشن و خاموش شه پین دو مستقل از پین یک هر 100ms پین سه مستقل از دو پین اول هر 150ms پین چهار مستقلا هر200ms و همین طور تا پین اخر.اگه کسی تونست این برنامه رو با بیسکام انجام بده ممنون میشم کمکم کنه.

    #2
    پاسخ : رقص نور عجیب

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

    پیروز و سربلند باشید.
    آدمی از عالم خاکی نمی آید بدست

    عالمی دیگر بباید ساخت و از نو آدمی
    پردازش تصویر با FPGA از صفر تا انتها
    http://www.eca.ir/forum2/index.php?topic=74299.0

    دیدگاه


      #3
      پاسخ : رقص نور عجیب

      با تایمر میشه اما با ۵۵۵هم می شه درست کرد به صرفه تر هم باید باشه.
      Difficult But possible
      به اميد ايراني آباد.
      http://art-net.ir

      دیدگاه


        #4
        پاسخ : رقص نور عجیب

        شما باید یک تایمر رو روی 50 میلی ثانیه تنظیم کنی.
        do

        پس از گذشت 50 میلی ثانیه :

        مقدار اولین کانتر 3 تا اضافه بشه.

        مقدار کانتر دوم 4 تا اضافه بشه.

        مقدار کانتر دوم 6 تا اضافه بشه.

        مقدار کانتر چهارم 12 تا اضافه بشه.


        هرکانتری که برابر با 12 شد پین مربوطه Toggle بشه و مقدار کانتر 0 بشه.

        loop
        دلا یاران سه قسمند ار بدانی
        زبانی اند و نانی اند و جانی
        به نانی نان بده از در برانش
        محبت کن به یاران زبانی
        و لیکن یار جانی را به دست آر
        به جانش جان بده تا می توانی

        دیدگاه


          #5
          پاسخ : رقص نور عجیب

          سلام ................

          نوشته اصلی توسط _آرش
          شما باید یک تایمر رو روی 50 میلی ثانیه تنظیم کنی.
          do

          پس از گذشت 50 میلی ثانیه :

          مقدار اولین کانتر یکی اضافه بشه.

          مقدار کانتر دوم دو تا اضافه بشه
          .
          .
          مقدار کانتر چهارم چهارتا اضافه بشه.


          هرکانتری که برابر با چهار شد پین مربوطه Toggle بشه و مقدار کانتر 0 بشه.

          loop
          آره راه جناب آرش هم خوبه ..

          پیشنهاد منم اینه که از PWM استفاده کنید . اونم میشه .. موفق باشید .
          دوستان! مدتی کمتر به سایت میام ..

          دیدگاه


            #6
            پاسخ : رقص نور عجیب

            پست قبلی رو تصحیح کردم. آخه مشکل داشت.
            دلا یاران سه قسمند ار بدانی
            زبانی اند و نانی اند و جانی
            به نانی نان بده از در برانش
            محبت کن به یاران زبانی
            و لیکن یار جانی را به دست آر
            به جانش جان بده تا می توانی

            دیدگاه


              #7
              پاسخ : رقص نور عجیب

              من نحوه کار کردن تایمر و کانتر رو میدونم اما انچنان در برنامه نویسیش تسلط ندارم (کار نکردم)منظورم بیشتر دستور waitms بود اگه برنامه با تایمر رو بزارید ممنون میشم.

              دیدگاه


                #8
                پاسخ : رقص نور عجیب

                نوشته اصلی توسط hamed_avr
                میخوام 8 تا led متصل به یک پورت m8 روبه این صورت راه اندازی کنم پین یک هر 50ms روشن و خاموش شه پین دو مستقل از پین یک هر 100ms پین سه مستقل از دو پین اول هر 150ms  پین چهار مستقلا هر200ms و همین طور تا پین اخر.اگه کسی تونست این برنامه رو با بیسکام انجام بده ممنون میشم کمکم کنه.

                من برنامه مشابه این رو دارم. ولی متاسفانه با نرم افزار code vision avr و به زبان c نوشته شده.
                اگه به دردت میخوره بگو تا بذارم واست.

                دیدگاه


                  #9
                  پاسخ : رقص نور عجیب

                  ممنون میشم خلاصه از هیچی که بهتره.

                  دیدگاه


                    #10
                    پاسخ : رقص نور عجیب

                    نوشته اصلی توسط hamed_avr
                    میخوام 8 تا led متصل به یک پورت m8 روبه این صورت راه اندازی کنم پین یک هر 50ms روشن و خاموش شه پین دو مستقل از پین یک هر 100ms پین سه مستقل از دو پین اول هر 150ms پین چهار مستقلا هر200ms و همین طور تا پین اخر.اگه کسی تونست این برنامه رو با بیسکام انجام بده ممنون میشم کمکم کنه.
                    با سلام
                    من با ****ام کار نکردم ولی این طور شاید بشه
                    شما تاخیر (delay) های 50 میلی ثانیه بده به ازای هر تاخیر پورت یک روشن و خاموش بشه وقتی دو تا تاخیر دادی پورت دو روشن و خاموش بشه وقتی سه تا تاخیر دادی پورت سه روشن و خاموش بشه و..... هر چند تا تاخیر 50 میلی ثانیه می خواهی بده بعد از ان اونا بزار در یک حلقه بی نهایت
                    یکی میگفت خدا چرا به حرفای ما گوش نمیده گفتم
                    هان ای صنما،دل یک دله کن
                    گر سر ندهم ،وانگه گله کن

                    دیدگاه


                      #11
                      پاسخ : رقص نور عجیب

                      حالا برای چه می خواهی همچین کاری کنی؟
                      Difficult But possible
                      به اميد ايراني آباد.
                      http://art-net.ir

                      دیدگاه


                        #12
                        پاسخ : رقص نور عجیب

                        سلام
                        اینو من نوشتم برای یه کار دیگه اگه کمی توش تغیر بدی (شاید هم همینجوری) بدردت بخوره :mrgreen:

                        $regfile = "m8def.dat"
                        $crystal = 8000000
                        Dim A As Byte
                        Dim B As Byte
                        Dim C As Byte
                        Dim D As Byte
                        Dim E As Byte
                        Dim F As Byte
                        Dim G As Byte
                        A = 0
                        B = 0
                        C = 0
                        D = 0
                        E = 0
                        F = 0
                        G = 0
                        Config Portb = Output
                        Portb = &B00000000
                        Main:
                        Toggle Portb.0
                        If A >= 2 Then
                        A = 0
                        Toggle Portb.1
                        If B >= 4 Then
                        B = 0
                        Toggle Portb.2
                        If C >= 8 Then
                        C = 0
                        Toggle Portb.3
                        If D >= 16then
                        D = 0
                        Toggle Portb.4
                        If E >= 32 Then
                        E = 0
                        Toggle Portb.5
                        If F >= 64 Then
                        F = 0
                        Toggle Portb.6
                        If G >= 128 Then
                        G = 0
                        Toggle Portb.7
                        End If
                        End If
                        End If
                        End If
                        End If
                        End If
                        End If

                        Incr A
                        Incr B
                        Incr C
                        Incr D
                        Incr E
                        Incr F
                        Incr G
                        Waitms 50
                        Goto Main
                        End



                        پروردگارا: به من زيستني عطا کن که در لحظه مرگ بر بي ثمري لحظه اي که براي زيستن گذشته است حسرت نخورم، و مردني عطا کن که بر بيهودگيش سوگوار نباشم. بگذار تا آن را خود انتخاب کنم، اما آنچنان که تو دوست ميداري

                        دیدگاه


                          #13
                          پاسخ : رقص نور عجیب

                          این برنامه رو امتحان کن:



                          $regfile = "m8def.dat"
                          $crystal = 8000000

                          Enable Interrupts
                          Enable Timer1
                          On Timer1 Timer_routin
                          Timer1 = 64536

                          Config Timer1 = Timer , Prescale = 8
                          Config Portb = Output

                          Dim Count As Byte

                          Portb = 0

                          Do
                          Loop

                          End

                          Timer_routin:
                          Incr Count
                          If Count = 50 Then Toggle Portb.0
                          If Count = 100 Then Toggle Portb.1
                          If Count = 150 Then Toggle Portb.2
                          If Count = 200 Then Toggle Portb.3
                          nop
                          Timer1 = 64536
                          Count = 0
                          Return

                          دیدگاه

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