اطلاعیه

Collapse
No announcement yet.

مشکل در کار با تایمر درAVR

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

    مشکل در کار با تایمر درAVR

    سلام:
    من میخوام تایمر 1 رو درمد بار گیری خودکار قرار بدم باید چی کار کنم؟

    #2
    پاسخ : مشکل در کار با تایمر درAVR

    Config Timer1 = Timer , Compare A = Disconnect , Prescale = 1 , Clear Timer = 1

    Compare1a = 1000 یا هر مقدار دیگه

    دیدگاه


      #3
      پاسخ : مشکل در کار با تایمر درAVR

      سلام،

      تایمرهای AVR بر خلاف 8051 Mode کاری به نام بارگذاری خودکار ندارند و شما می تونید از CTC Mode استفاده کنید. در این وضعیت با رسیدن مقدار تایمر به عدد موجود در رجیستر مقایسه (OCRx) محتوی رجیستر TCNTx صفر شده و تایمر از صفر شروع به شمارش می کند.
      There is nothing so practical as a good theory. — Kurt Lewin, 1951

      دیدگاه


        #4
        پاسخ : مشکل در کار با تایمر درAVR

        سلام
        چرا تو این برنامه تایمر راه اندازی نمیشه و همش 0 نشون میده؟
        این برنامه رو همینطوری واسه راه اندازی تایمر نوشتم

        نمیدونم کجاش مشکل داره
        ضمنا با 3 تا ورژن از bascom هم کامپایل کردم اما بازم تایمر همش مقدار 0 نشون میده
        $regfile = "m8def.dat"
        $crystal = 4000000
        Config Timer1 = Timer , Prescale = 1
        Enable Timer1
        Start Timer1
        Dim A As Integer
        Do
        A = Timer1
        Print A
        Loop

        دیدگاه


          #5
          پاسخ : مشکل در کار با تایمر درAVR

          ظاهرا کسی نیست جواب منو بده :angry:
          من قبلا با تایمر کار کردم، به همین صورت هم کانفیگ کردم، اما نمیدونم چرا الان تایمرم کار نمیکنه :sad:
          نمیدونم مشکل از bascome یا جایی دیگه
          لطفا یکی از دوستان جواب بده
          متشکرم

          دیدگاه


            #6
            پاسخ : مشکل در کار با تایمر درAVR

            برنامه ات ناقصه یا همین چند خط رو اینجا نوشتی

            این قسمت ها رو باید اضافه کنی

            on ovf1 label

            enable interrupts
            بعد از دستور end هم باید زیر روال label رو تعریف کنی


            اگه مردم می دونستن زمان چقدر با ارزشه دیگه هیچ وقت کفش بند دار نمی خریدن البرت انیشتن

            دیدگاه


              #7
              پاسخ : مشکل در کار با تایمر درAVR

              اینا هم نوشتم
              برنامه اصلیم اینه:

              فقط علی الحساب اینجا به جای دستور lcd از دستور print استفاده کردم که بتونم تو شبیه ساز bascom مقادیر رو ببینم
              یکی از دوستان یه زحمت بکشه و برنامه رو تو bascom کپی کنه ببینه چرا تایمر همش مقدار صفر رو نشون میده
              ممنون

              $regfile = "m16def.dat"
              $crystal = 4000000
              Config Lcdpin = Pin , Db4 = Pinc.2 , Db5 = Pinc.3 , Db6 = Pinc.4 , _
              Db7 = Pinc.5 , E = Pinc.1 , Rs = Pinc.0
              Config Lcd = 16 * 2
              Config Timer1 = Timer , Prescale = 8
              Enable Timer1
              Enable Interrupts
              On Ovf1 Receive

              Dim A As Single

              Config Pind.0 = Output

              Cls
              Cursor Off

              start timer1


              Do
              Set Portd.0
              Waitms 400
              Reset Portd.0
              Waitms 100
              Loop
              End

              Receive:
              Stop Timer1
              Reset Portd.0
              A = Timer1
              If A > 64000 Then
              Cls
              Lcd "OUT OF RANGE"
              "این 2 خط جزء برنامه نیست، فقط میخوام مقادیر رو ببینم
              print a
              "print timer1

              Goto Down
              End If
              Lcd " "
              Home
              Lcd A

              Down:
              Timer1 = 0
              A = 0
              start timer1
              Return

              راستی، پیشاپیش هم عید رو به همه دوستان گرامی تبریک میگم
              امیدوارم که سال خوب و پر برکتی رو در پیش رو داشته باشید :nice:

              دیدگاه

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