اطلاعیه

Collapse
No announcement yet.

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

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

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

    سلام>خسته نباشین>
    من میخوام با استفاده از تایمر یک میکروکنترولر atmega8(avr) یک تاخیر یک ثانیه ای ایجاد کنم.اینم برنامش:
    $regfile = "m8def.dat"
    $crystal = 8000000
    Enable Interrupts
    Enable Timer1
    On Ovf1 Yes
    Config Timer1 = Timer , Prescale = 256
    Config Portb = Output
    Dim A As Integer
    Dim B As Integer
    B = 0
    Timer1 = 34286
    Start Timer1
    Do
    Portb = A
    Loop

    '-------------------------------------------------------------------------------
    Yes:
    Stop Timer1
    Incr A
    Timer1 = 34286
    Start Timer1
    Return
    End
    مقداری رو که تو تایمر یک قرار دادم و اسکیل فرکانس میکرو دقیقا باید یک ثانیه باشه:ولی عملا 10 ثانیه میشه:
    >>>مشکل از کجاست؟
    تشکرات فراوان

    #2
    پاسخ : مشکلی در مورد ایجاد تاخیر با استفاده از تایمر مگاهشت

    سلام دوست عزیز
    برنامه به نظر درست میاد ولی چون من با بسکام کار نمی کنم راجع بهش زیاد نظر نمی دم
    فرکانس میکرو رو با استفاده از فیوز بیتها روی 8 مگا هرتز تنظیم کردی؟
    اگه درست یادم باشه واسه 8 مگا هرتز باید این جوری پرگرامشون کنی:
    CKSEL3:0=1000
    البته تو دیتا شیت ببین تا مطمئن بشی
    در دیر مغان آمد یارم قدحی در دست
    مست از می می خواران از نرگس مستش مست

    دیدگاه


      #3
      پاسخ : مشکلی در مورد ایجاد تاخیر با استفاده از تایمر مگاهشت

      سلام>آقا همه چیزش ردیفه>گیر کار کجاست نمیدونم :question:?
      کمکم کنین. :exclaim:

      دیدگاه


        #4
        پاسخ : مشکلی در مورد ایجاد تاخیر با استفاده از تایمر مگاهشت

        دوست عزیز سلام،

        برنامه زیر را چک کن این برنامه دقیقا واسه من جواب داد.

        $crystal = 8000000
        Config Timer0 = Timer , Prescale = 1
        Enable Timer0
        Enable Ovf0
        Enable Interrupts
        Stop Timer0
        Timer0 = 0
        Config Portb = Output
        Dim A As Integer
        Dim Timer_count As Integer
        Timer_count=0
        On Ovf0 Tim0_s
        Start Timer0
        Do
        Portb = A
        Loop
        end
        '*************
        Tim0_s:
        Incr Timer_count
        If Timer_count > 31250 Then Incr A
        Return
        ************************************************** *********
        دوست عزیز من منظور برنامه را متوجه نشدم ولی در برنامه ای که نوشتم ثانیه ها روی پورت A قرار میگیرن.
        یعنی در واقع A یک ثانیه شمار است.

        موفق باشید.
        صلی الله علیک یا اباعبدالله الحسین.

        صلی الله علی الباکین علی الحسین(ع).

        دیدگاه


          #5
          پاسخ : مشکلی در مورد ایجاد تاخیر با استفاده از تایمر مگاهشت

          سلام>مثل اینکه وقتی prescale کریستال بالا باشه میکرو گات میزنه!!!من همونو با یک مگاهرتز آزمایش کردم با اسیکل پایین تر جواب داد :exclaim:

          دیدگاه

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