اطلاعیه

Collapse
No announcement yet.

کار نکردن برنامه با تغییر کلاک میکرو

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

    کار نکردن برنامه با تغییر کلاک میکرو

    با سلام. من یه مدار دیمر با AVR ساختم
    این هم برنامش که خیلی خوب کار میکنه و توی اینترنت اونو پیدا کردم

    اما الان میخوام با کریستال خارجی اونو درست کنم اما وقتی فیوز بیت رو روی کریستال خارجی تنظیم میکنم برنامه دیگه کار نمیکنه
    رو حالت اصلی اسیلاتور داخلی 8مگاهرتز هست اما من میخوام با کریستال خارجی 2مگاهرتز اونو راه اندازی کنم. کریستال رو گذاشتم و فیوز بیت رو هم روی خارجی تنظیم کردم اما...

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

    Config Pind.0 = Output
    Config Pinb.0 = Input
    Config Pind.7 = Input

    Portb.0 = 1
    Portd.7 = 1

    Up_key Alias Pinb.0
    Down_key Alias Pind.7
    Triac_gate Alias Portd.0

    Config Int0 = Falling
    On Int0 Int0_int

    Enable Interrupts


    Dim B As Byte
    Dim D As Byte
    Dim E As Eram Byte

    If E = &HFF Then E = 100
    B = E

    Enable Int0

    '*******************************************************************************

    Do

    If Up_key = 0 Then
    If B > 0 Then Decr B
    E = B
    Waitms 20
    End If

    If Down_key = 0 Then
    If B < 175 Then Incr B
    E = B
    Waitms 20
    End If

    Loop

    End ' end program

    '*******************************************************************************

    Int0_int:
    For D = 0 To B
    Waitus 50
    Next
    Set Triac_gate
    Waitus 30
    Reset Triac_gate
    Return

    '*******************************************************************************

    #2
    پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

    نوشته اصلی توسط tabandokht نمایش پست ها
    با سلام. من یه مدار دیمر با AVR ساختم
    این هم برنامش که خیلی خوب کار میکنه و توی اینترنت اونو پیدا کردم

    اما الان میخوام با کریستال خارجی اونو درست کنم اما وقتی فیوز بیت رو روی کریستال خارجی تنظیم میکنم برنامه دیگه کار نمیکنه
    رو حالت اصلی اسیلاتور داخلی 8مگاهرتز هست اما من میخوام با کریستال خارجی 2مگاهرتز اونو راه اندازی کنم. کریستال رو گذاشتم و فیوز بیت رو هم روی خارجی تنظیم کردم اما...

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

    Config Pind.0 = Output
    Config Pinb.0 = Input
    Config Pind.7 = Input

    Portb.0 = 1
    Portd.7 = 1

    Up_key Alias Pinb.0
    Down_key Alias Pind.7
    Triac_gate Alias Portd.0

    Config Int0 = Falling
    On Int0 Int0_int

    Enable Interrupts


    Dim B As Byte
    Dim D As Byte
    Dim E As Eram Byte

    If E = &HFF Then E = 100
    B = E

    Enable Int0

    '*******************************************************************************

    Do

    If Up_key = 0 Then
    If B > 0 Then Decr B
    E = B
    Waitms 20
    End If

    If Down_key = 0 Then
    If B < 175 Then Incr B
    E = B
    Waitms 20
    End If

    Loop

    End ' end program

    '*******************************************************************************

    Int0_int:
    For D = 0 To B
    Waitus 50
    Next
    Set Triac_gate
    Waitus 30
    Reset Triac_gate
    Return

    '*******************************************************************************
    سلام
    این خط رو باید تغییر بدید و برنامه رو دوباره بیلد کنید.
    $crystal = 8000000

    دیدگاه


      #3
      پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

      بله این کار رو کردم. 2000000 کردم. و یه کریستال 2مگاهرتز گذاشتم و فیوزبیت رو هم رو اکسترنال گذاشتم
      اما کار نمیکنه

      دیدگاه


        #4
        پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

        نوشته اصلی توسط tabandokht نمایش پست ها
        بله این کار رو کردم. 2000000 کردم. و یه کریستال 2مگاهرتز گذاشتم و فیوزبیت رو هم رو اکسترنال گذاشتم
        اما کار نمیکنه
        من متاسفانه اصلا بیسیک بلد نیستم و بیشتر از این نمیتونم کمکی بکنم.
        به هر حال ببینید کلا میکروکنترلر با کریستال خارجی کار میکنه یا نه. منظورم اینه یک برنامه تست براش بنویسید و از عملکرد صحیح خود میکروکنترلر مطمئن بشید، بعد برید سراغ مشکلات احتمالی برنامه اصلی.

        دیدگاه


          #5
          پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

          سلام خدمت دوستان
          توی استفاده کردن از کریستال های پایین تر از 4 مگاهرتز باید از RC استفاده بشه (یادم نیست کجا خوندم)
          فکر کنم این به دردتون بخوره
          از معرفی کریستال کوارتز (Quartz Crystal) تا محاسبه ظرفیت خازن و مقاومت کریستال، اتصال کریستال کلاک به میکروکنترلر و طراحی PCB برای کریستال ساعت می پردازیم.

          چون گاهی موارد این خازن ها دردسرند
          همیشه کامل توضیح بدهیم تا جواب کامل بگیریم.
          لطفا برای تشکر روی دکمه تشکر بزنید و بخاطر این پست نزنید که تایپیک شلوغ نشود
          تایپیک های من:
          حل تمام مشکلات atmega128a (eca.ir)
          آموزش کار با سایت (eca.ir)

          دیدگاه


            #6
            پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

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

            دلیل: ادغام دو پست برای جلوگیری از اسپم

            ضمنا نگفتی پروگرامرت چیه چون بعضی پروگرامرها بعد از تغییر اشتباه فیوزبیت دیگه نمیتونن اونو تغییر بدن

            دیدگاه


              #7
              پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

              یعنی برای فرکانس 2مگاهرتز نمیشه از کریستال خارجی استفاده کرد؟
              دستگاه کار میکنه. تایمرها و ال سی دی و... کار میکنن همه اما این مورد مشکل داره

              دلیل: ادغام دو پست برای جلوگیری از اسپم

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

              دلیل: ادغام دو پست برای جلوگیری از اسپم

              ضمنا نگفتی پروگرامرت چیه چون بعضی پروگرامرها بعد از تغییر اشتباه فیوزبیت دیگه نمیتونن اونو تغییر بدن
              همه چی درسته حتی مدار ارتباط سریال داره و مقدار دور موتور رو در پورت سریال میاره. همه چی درست کار میکنه اما موتور خیر.

              یه سوال دارم مثلا برای کریستال خارجی از چه مقداری باید low frequency انتخاب شه و همینطور medium , high frequency
              اصلا چرا چندین گزینه مثلا های فرکونسی برای کریستال خارجی داره. اینا چه فرقی میکنن

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

              دیدگاه


                #8
                پاسخ : کار نکردن برنامه با تغییر کلاک میکرو

                برای فرکانس پایین هم میشه از کریستال خارجی استفاده کرد.من از کریستال 1.8 مگاهرتز استفاده کردم و مشکلی نداشتم.
                اکه ارتباط سریال دو طرفه دارین حتما از کریستال با خطای صفر استفاده کنین در غیر اینصورت میکرو تو بخش تبادل دیتا گیر میکنه و این مورد هم میتونه منجر به توقف برنامه بشه.
                در مورد حرکت نکردن موتورها یه شماتیک یا عکس از برد بذارین تا بهتر متوجه بشیم.تو برنامتون ارتباط سریال نبود فکر کنم.
                اگه همه چی خوبه و مشکل فقط حرکت موتور هست بجای موتور یه لامپ وصل کن ببین جواب میده و دیمر درست کار میکنه.


                دلیل: ادغام دو پست برای جلوگیری از اسپم

                در مورد فرکانس پایین.میانی و بالا به دیتاشیت مراجعه کن

                دیدگاه

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