اطلاعیه

Collapse
No announcement yet.

کانتر صفر رو چطور راه اندازی کنم با بسکام

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

    کانتر صفر رو چطور راه اندازی کنم با بسکام

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


    Config Timer0 = Counter , Edge = Rising

    Enable Interrupts

    Enable Timer0

    Dim Mor As Word

    Counter0 = 0

    Mor = 0

    Cls

    Do


    Mor = Counter0

    Lcdat 1 , 1 , Mor

    Loop

    End

    'من ورودی رو هم که یه پالس هست به پایه t0 میدم

    #2
    پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

    مشکلت دقیقاٌ چیه؟مقدار کانتر رو lcd نمی بینی؟
    آرین شاپ : فروشگاه اختصاصی محصولات آبنما و نورپردازی
    www.Shop.ArianEng.ir

    دیدگاه


      #3
      پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

      سلام
      اره نمی تنونم اطلاعات رو رو lcd نشون بدم
      نمیدونم چرا کار نمی کنه اگه جا timer0 بنویسم timer1 همه چیز حل میشه
      چرا اینطوری هست؟

      دیدگاه


        #4
        پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

        میکروت چیه؟؟؟؟
        ایمان

        دیدگاه


          #5
          پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

          میکرو من atmega 16 هست
          اول یکی به من بگه مگه شرایط استفاده از کانتر برا کانتر صفر با کانتر یک فرقی داره؟ :angry:
          اگه فرقی نداره پس چرا من نمی تونم برنامه بالا رو که کانتر یک کار میکنه باهاش برا کانتر صفر استفاده کنم؟ :cry2: :cry2:

          دیدگاه


            #6
            پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

            ببین بحای 0و2 بذار اگه کار نکرد بگو تا بهت بگم اشکالت کجاست...... :nerd:
            ایمان

            دیدگاه


              #7
              پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

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

              دیدگاه


                #8
                پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                سلام
                خوبین؟چرا کسی به من جواب نمی ده؟

                دیدگاه


                  #9
                  پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                  اگه یه میکروی دیگه داری ( مثلا ATMEGA32 ) با اون یه تست بکن. اگه جواب نگرفتی بگو تا بیشتر تعجب کنم oo:

                  دیدگاه


                    #10
                    پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                    خوب پس بیشتر تعجب کن
                    چون من نه تو protuse و نه تو عمل نتونستم جواب بگیرم
                    :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry: :cry:

                    دیدگاه


                      #11
                      پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                      سلام
                      برنامه زیر میتونه 1ثانیه بشماره؟مشکلی نداره؟
                      $regfile = "m16def.dat"
                      $crystal = 8000000

                      Config Timer1 = Timer , Prescale = 8
                      Config Portd = Output
                      Dim X As Integer
                      Enable Interrupts
                      Enable Timer1
                      Enable Ovf1
                      On Ovf1 Motor
                      Do
                      Portd = &B00000000
                      Timer1 = 64536
                      Start Timer1
                      Lable1:
                      Portd = &B11111111
                      Loop
                      End
                      Motor:
                      X = X + 1
                      If X = 1000 Then
                      X = 0
                      Return
                      Else
                      Stop Timer1
                      Timer1 = 64536
                      Start Timer1
                      Return
                      End If

                      دیدگاه


                        #12
                        پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                        نه .
                        باید اون مقداری که به تایمر 1 دادی ( داخل حلقه) رو از حلقه خارج کنی و قبل از اون بذاری.
                        ضمن اینکه چرا تو حلقه دائما پورت B رو صفر و یک می کنی؟ این متغیر X چیکار می کنه؟
                        یه برنامه بنویس که مثلا هر یک ثانیه یکی به مقدار X اضافه کنه و روی LCD نمایش بده.

                        دیدگاه


                          #13
                          پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                          سلام
                          ببین portb در اصل یه led هست که قرار هست هر یک ثانیه 1بار خاموش و روشن شه
                          این x هم برا این هست که 1000 بار تایمر رو که 1000 بار میشماره دوباره مقدار بده پس داریم 1000*1000=1ثانیه
                          من طبق راهنمایی شما عمل کردم

                          دیدگاه


                            #14
                            پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

                            خب این چیزی رو که تو گفتی من این طوری نوشتم:

                            $regfile = "m16def.dat"
                            $crystal = 8000000
                            Config Timer1 = Timer , Prescale = 8
                            Config Pinb.0 = Output
                            Enable Interrupts
                            Enable Timer1
                            On Timer1 Int_routin
                            Dim Check As Bit
                            Dim X As Word
                            Timer1 = 64536
                            Check = 0
                            X = 0
                            Cls
                            Start Timer1
                            Do
                            If Check = 1 Then
                            Toggle Portb.0
                            Check = 0
                            End If
                            Loop
                            End

                            Int_routin:
                            Stop Timer1
                            Incr X
                            If X = 1000 Then
                            X = 0
                            Check = 1
                            End If
                            Timer1 = 64536
                            Start Timer1
                            Return

                            به طور کلی این طوریه:
                            اگه متغیر Check=1 بشه اون وقت وضعیت پایه B.0 تغییر می کنه( Toggle )
                            وقتی متغیر Check=1 میشه که مقدار X=1000 بشه . یعنی هر یک ثانیه.

                            دیدگاه


                              #15
                              پاسخ : کانتر صفر رو چطور راه اندازی کنم با بسکام

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

                              $crystal = 8000000
                              Config Portb = Output
                              Config Portd = Output
                              Enable Interrupts
                              Do

                              Portb = &B 00000000
                              Wait 1
                              Portb = &B11111111
                              Wait 1
                              On Interrupt , Motor
                              Wait 1
                              Portd = $b00000000
                              Loop
                              End
                              Motor:
                              Portd = &B11111111
                              Return
                              از خط on interrupt ایراد میگیره

                              دیدگاه

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