اطلاعیه

Collapse
No announcement yet.

مشکل در ایجاد زمان صحیح با تایمر در بسکام

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

    مشکل در ایجاد زمان صحیح با تایمر در بسکام

    با عرض سلام خدمت دوستان و اساتید
    من مدتیه که شروع کردم با avr کار کنم
    به یک مشکل برخوردم که واقعا توش گیر کردم
    الان میخوام یک کار ساده انجام بدم
    میخوام یک LED با فاصله زمانی یک ثانیه چشمک بزنه
    این کار رو برای یادگیری تایمر انجام میدم
    همه چیز هم ظاهرا درسته ولی بجای یک ثانیه چیزی حدود هشت ثانیه طول میکشه
    میکرو atmega16 رو استفاده میکنم ؛ با رگولاتور 7805 تغذیش کردم
    (روی برد ربات تعقیب خط بستمش)
    میکرو روشن میشه و مثلا با دستور waitms همون کار و انجام میده اما با تایمر نمیتونم
    ضمنا برای تغذیش هم شارژر با خروجی 8 ولت و هم منبع تغذیه خروجی متغیر و جریان 1 آمپر رو تست کردم
    کد برنامه رو هم میذارم
    کد:
    $regfile = "m16def.dat"
    $crystal = 8000000
    
    Config Portd = Output
    Set Portd.7
    Dim Cnt As Word
    Config Timer0 = Timer , Prescale = 8
    Enable Interrupts
    Enable Timer0
    On Timer0 Main
    Timer0 = 56
    Start Timer0
    
    Do
    
    Loop
    End
    Main:
    Stop Timer0
    Incr Cnt
    If Cnt = 5000 Then
     Toggle Portd.7
     Cnt = 0
    End If
    Timer0 = 56
    Start Timer0
    Return
    لطفا راهنمایی کنید

    #2
    پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

    فیوزبیتها رو تنظیم کردی؟
    فیوزبیت تایمر رو روی 1 مگاهرتز بزار

    دیدگاه


      #3
      پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

      کل کدی که نوشتم همونیه که اینجا گذاشتم
      اگه میشه بگین باید چطور اون کارو انجام بدم

      دیدگاه


        #4
        پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

        شما داخل برنامه کلاک رو 8 مگا تعریف کردید باید موقع پروگرام کردن هم 8 رو انتخاب کنید.
        چون حالت اولیه کلاک روی 1 مگا تعریف میشه اگر داخل برنامه هم 1 مگا بزاری مشکلت حل میشه

        دیدگاه


          #5
          پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

          نوشته اصلی توسط Reza 0020
          شما داخل برنامه کلاک رو 8 مگا تعریف کردید باید موقع پروگرام کردن هم 8 رو انتخاب کنید.
          چون حالت اولیه کلاک روی 1 مگا تعریف میشه اگر داخل برنامه هم 1 مگا بزاری مشکلت حل میشه
          اتفاقا اونی که توی برنامه میزاری دکوریه ! اصل قضیه فیوز بیتها ست
          http://www.eca.ir/forum2/index.php?topic=20473.0

          دیدگاه


            #6
            پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

            نوشته اصلی توسط babak_mobile
            با عرض سلام خدمت دوستان و اساتید
            من مدتیه که شروع کردم با avr کار کنم
            به یک مشکل برخوردم که واقعا توش گیر کردم
            الان میخوام یک کار ساده انجام بدم
            میخوام یک LED با فاصله زمانی یک ثانیه چشمک بزنه
            این کار رو برای یادگیری تایمر انجام میدم
            همه چیز هم ظاهرا درسته ولی بجای یک ثانیه چیزی حدود هشت ثانیه طول میکشه
            میکرو atmega16 رو استفاده میکنم ؛ با رگولاتور 7805 تغذیش کردم
            (روی برد ربات تعقیب خط بستمش)
            میکرو روشن میشه و مثلا با دستور waitms همون کار و انجام میده اما با تایمر نمیتونم
            ضمنا برای تغذیش هم شارژر با خروجی 8 ولت و هم منبع تغذیه خروجی متغیر و جریان 1 آمپر رو تست کردم
            کد برنامه رو هم میذارم
            کد:
            $regfile = "m16def.dat"
            $crystal = 8000000
            
            Config Portd = Output
            Set Portd.7
            Dim Cnt As Word
            Config Timer0 = Timer , Prescale = 8
            Enable Interrupts
            Enable Timer0
            On Timer0 Main
            Timer0 = 56
            Start Timer0
            
            Do
            
            Loop
            End
            Main:
            Stop Timer0
            Incr Cnt
            If Cnt = 5000 Then
             Toggle Portd.7
             Cnt = 0
            End If
            Timer0 = 56
            Start Timer0
            Return
            لطفا راهنمایی کنید
            سلام
            چرا برای زمان یک ثانیه از تایمر 1 استفاده نکردین
            با این روشی که از تایمر 0 استفاده کردید خطا میره بالا
            برای دیر اجرا شدن هم همونطور که دوستان گفتند می تونه از فیوز بیتش باشه که شما باید روی 8 مگ داخلی قرار بدین...
            برد جوجه کشی:
            مطالعه پست 1 (حتما مطالعه کنید)


            مطالعه پست 2 (برای مطلع شدن از تغییرات برنامه مطالعه کنید)

            دانلود

            توجه:
            این برد نیمه صنعتی و خانگی هست...
            برای صنعتی شدن حتما برد مخصوص خودتون رو بزنید...

            آی دی کانال تلگرامی مربوط به برد جوجه کشی : electr0o0nic@

            دیدگاه


              #7
              پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

              نوشته اصلی توسط babak_mobile
              با عرض سلام خدمت دوستان و اساتید
              من مدتیه که شروع کردم با avr کار کنم
              به یک مشکل برخوردم که واقعا توش گیر کردم
              الان میخوام یک کار ساده انجام بدم
              میخوام یک LED با فاصله زمانی یک ثانیه چشمک بزنه
              این کار رو برای یادگیری تایمر انجام میدم
              همه چیز هم ظاهرا درسته ولی بجای یک ثانیه چیزی حدود هشت ثانیه طول میکشه
              میکرو atmega16 رو استفاده میکنم ؛ با رگولاتور 7805 تغذیش کردم
              (روی برد ربات تعقیب خط بستمش)
              میکرو روشن میشه و مثلا با دستور waitms همون کار و انجام میده اما با تایمر نمیتونم
              ضمنا برای تغذیش هم شارژر با خروجی 8 ولت و هم منبع تغذیه خروجی متغیر و جریان 1 آمپر رو تست کردم
              کد برنامه رو هم میذارم
              کد:
              $regfile = "m16def.dat"
              $crystal = 8000000
              
              Config Portd = Output
              Set Portd.7
              Dim Cnt As Word
              Config Timer0 = Timer , Prescale = 8
              Enable Interrupts
              Enable Timer0
              On Timer0 Main
              Timer0 = 56
              Start Timer0
              
              Do
              
              Loop
              End
              Main:
              Stop Timer0
              Incr Cnt
              If Cnt = 5000 Then
               Toggle Portd.7
               Cnt = 0
              End If
              Timer0 = 56
              Start Timer0
              Return
              لطفا راهنمایی کنید
              حتما فیوزبیت ها تنظیم نیست چون کلاک شما 1 مگه پیش فرض

              ی نکته ای رو توجه کنید مقدار اولیه تایمر باید 57 داده بشه خود تایمر شما 256 تا میشماره برای آورفلو ولی در 257 تمین شمارش صفر میشه یعنی زمانی که کلاک پالس 257 تم اعمال شد
              اشک هایی که پس از هر شکست ریخته میشوند همان عرق هاییست که برای پیروزی ریخته نشده است

              دیدگاه


                #8
                پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

                از تمام دوستانی که زحمت کشیدند و وقت گذاشتند تشکر میکنم
                با تنظیم فیوز بیتها مشکلم حل شد

                دیدگاه


                  #9
                  پاسخ : مشکل در ایجاد زمان صحیح با تایمر در بسکام

                  کجاش دکور؟؟؟؟
                  اگر کلاک تعیین شده به صورت نرم افزاری با مقدار سخت افزاری که همون فیوز بیت برابر نباشه اون موقع دکور نبودنش ثابت میشه.
                  تازه اصل قضیه همون نرم افزار چون آزادی بیشتری داری ولی سخت افزاری فقط میتونی محدوده رو تعیین کنید و نوع کلاک وگرنه نمیشه تعیین کرد که فرکانس باشه 12288000

                  دیدگاه

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