NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2178 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 16 از 16

موضوع: مشکل در کریستال ساعت

  1. #1
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نام
    امین
    نوشته ها
    80
    تشکر
    255
    تشکر شده 107 بار در 53 پست

    پیش فرض مشکل در کریستال ساعت

    سلام
    من برای یه مگا8 برنامه پایین رو نوشتم، قراره که با گذشت یک دقیقه از شروع به کار میکرو یک پین (دی 2 ) یک بار خاموش و روشن ، با گذشت 2 دقیقه دو بار خاموش و روشن و الی آخر بشه
    من یک کریستال ساعت رو به میکرو وصل کردم و فیوزبیت های اونو روی کریستال داخلی 8مگا هرتز تنظیم کردم .
    مشکل اینجاست که برنامه هیچوقت به تابع p پرش نمیکنه
    به نظر شما اساتید مشکل از کجاست؟
    [PHP]$regfile = "m8def.dat"
    $crystal = 8000000
    Config Portd = Output
    Config Timer2 = Timer , Async = On , Prescale = 128
    Dim W As Byte
    Dim A As Byte
    Dim I As Byte
    Set Portd.2
    Wait 1
    Reset Portd.2
    Enable Interrupts
    Enable Ovf2
    On Ovf2 P
    Start Timer2

    Do
    Loop
    P:
    W = W + 1
    If W < 59 Then
    Return
    Else
    W = 0
    I = I + 1
    A = 0
    Do
    Set Portd.2
    Wait 1
    Reset Portd.2
    Wait 1
    A = A + 1
    Loop Until A = I
    End If
    Return
    [/PHP]
    ویرایش توسط sarutobi : 15-06-2012 در ساعت 13:24

  2. تشکرها از این نوشته :


  3. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نام
    Advertising world
    نوشته ها
    Many
     

  4. #2
    مدیر انجمن cmuiran آواتار ها
    تاریخ عضویت
    Jan 2011
    نام
    پیمان غلامی
    نوشته ها
    1,071
    تشکر
    407
    تشکر شده 966 بار در 553 پست

    پیش فرض

    سلام
    اقا لبه برای اینترابتت انتخاب کن که به لبه بالا رونده حساس باشه یا پایین رونده
    Enable Interrupts
    Enable Int0
    Config Int0 = Rising
    On Int0 p
    به نام آن کسی که به من بال پرواز داد تا اوج بگیرم

  5. کاربران : 2 تشکر کرده اند از شما cmuiran برای ارسال این پست سودمند:


  6. #3
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نام
    امین
    نوشته ها
    80
    تشکر
    255
    تشکر شده 107 بار در 53 پست

    پیش فرض

    نقل قول نوشته اصلی توسط cmuiran نمایش پست ها
    سلام
    اقا لبه برای اینترابتت انتخاب کن که به لبه بالا رونده حساس باشه یا پایین رونده
    Enable Interrupts
    Enable Int0
    Config Int0 = Rising
    On Int0 p
    سلام
    ممنون که جواب دادین
    اما وقفه int اینجا به چه درد میخوره؟ این وقفه با یه پالس از بیرون فعال میشه ولی من میخوام از وقفه تایمر2 استفاده کنم ، با اون اعداد باید هر یک ثانیه به p پرش کنه ، که این اتفاق نمیفته
    به نظر شما اساتید مشکل نرم افزاریه یا سخت افزاری؟ همونطور که میدونید در میکروی مگا8 پایه های xtal , tosc مشترک هستن من به این پایه ها یک کریستال ساعت وصل کردم و میکرو رو روی 8 مگا هرتز داخلی تنظیم کردم ، Async = On قرار دادم ، حالا برنامه تا do loop درست اجرا میشه ولی وقفه ای رخ نمیده

  7. تشکرها از این نوشته :


  8. #4
    مدیر کل انجمن ها morteza_rk آواتار ها
    تاریخ عضویت
    Apr 2009
    نام
    مرتضی رحیمی کردمحله
    نوشته ها
    2,071
    تشکر
    2,376
    تشکر شده 2,899 بار در 1,263 پست

    پیش فرض

    سلام

    زیر برنامه ی P چرا دوتا Return داره؟ در کل اگه بخوایم حساب کنیم این زیر برنامه ایراد داره دادا!

    حالا شما اون return اولی رو پاک کن و بعد تست کن ، ببین چی میشه؟
    .
    اَللّهُمَ صَلّ عَلی مُحَمَّد وَ آلِ مُحَمَّد وَ عَجّل الفَرَجَهُم


    وبلاگ شخصی من

  9. تشکرها از این نوشته :


  10. #5
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    سلام
    مهندس برنامه يه خورده ايراد داره. همونطور كه دوستان گفتن.
    ویرایش توسط sadmonew : 15-06-2012 در ساعت 23:59
    _____________________________________
    _____________________________________

  11. تشکرها از این نوشته :


  12. #6
    مدير بخش STM32 sadmonew آواتار ها
    تاریخ عضویت
    Jun 2011
    نام
    صادق محمدي
    نوشته ها
    2,002
    تشکر
    6,283
    تشکر شده 3,115 بار در 1,408 پست

    پیش فرض

    مهندس برنامه اصلاح شد. بدون مشكل كار ميكنه. همونطوري كه ميخواي
    کد:
    $regfile = "m8def.dat"
    $crystal = 8000000
    Config Portd = Output
    Config Timer2 = Timer , Async = On , Prescale = 128
    On Timer2 P
    Enable Interrupts
    Enable Timer2
    
    Dim W As Byte
    Dim A As Byte
    Dim I As Byte
    Set Portd.2
    Wait 1
    Reset Portd.2
    Do
    Loop
    P:
      W = W + 1
      If W < 59 Then
      Else
        W = 0
        I = I + 1
        A = 0
        Do
          Set Portd.2
          Waitms 500
          Reset Portd.2
          Waitms 500
          A = A + 1
        Loop Until A = I
      End If
    Return
    _____________________________________
    _____________________________________

  13. تشکرها از این نوشته :


  14. #7
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نام
    امین
    نوشته ها
    80
    تشکر
    255
    تشکر شده 107 بار در 53 پست

    پیش فرض

    سلام

    ممنون که توجه کردید
    خوب من برنامه رو بدون دستور return اجرا کردم ، ولی فقط موقعی که تایمر رو بدون دستور async = On کانفیگ کردم روی برد درست عمل کرد، وقتی از دستور بالا استفاده میکنم به محض وصل کردن تغذیه میکرو پین دی2 یک بار خاموش و روشن میشه و اتفاق دیگه ای نمیفته
    کریستال ساعت رو با یک کریستال ساعت دیگه عوض کردم ولی مشکل حل نشد حالا دو تا سوال دارم:
    1- آیا تنظیمات خاصی برای کریستال ساعت در مگا8 وجود داره؟ مثل فیوز بیت یا اضافه کردن یه کد خاص؟
    2 - وقتی که برنامه رو با دستور return اول و بدون دستور Async = On اجرا کردم پین دی 2 مرتب ست و ریست میشد ، درست مثل اینکه برنامه از سطر اول تا دستور do loop در یک do loop دیگه گیر افتاده باشه، حالا چرا این اتفاق می افتاد؟ مگه با دستور return برنامه نباید به جایی که وقفه صورت گرفته برگرده؟ یعنی همون do loop پس چرا برنامه از اول اجرا میشد؟

  15. #8
    کاربر فعال pooriya آواتار ها
    تاریخ عضویت
    Nov 2008
    نام
    پوریا علیزاده
    نوشته ها
    316
    تشکر
    163
    تشکر شده 676 بار در 217 پست

    پیش فرض

    دستور async = On فقط کلاک مورد نیاز رو از پایه های tosc1,tosc2 دریافت می کنه و وقت که استفاده نشه فرکانس کاری میکرو ههمون کریستال 8 مگ میشه.
    1-خیر

  16. تشکرها از این نوشته :


  17. #9
    کاربر علاقه مند
    تاریخ عضویت
    Feb 2011
    نام
    امین
    نوشته ها
    80
    تشکر
    255
    تشکر شده 107 بار در 53 پست

    پیش فرض

    نقل قول نوشته اصلی توسط pooriya نمایش پست ها
    دستور async = on فقط کلاک مورد نیاز رو از پایه های tosc1,tosc2 دریافت می کنه و وقت که استفاده نشه فرکانس کاری میکرو ههمون کریستال 8 مگ میشه.
    1-خیر
    پس چرا این برنامه با کرستال داخلی ( و بدون استفاده از کریستال ساعت ) کار میکنه ولی با کریستال ساعت خیر؟

  18. #10
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2013
    نام
    مریم دشتی
    نوشته ها
    43
    تشکر
    24
    تشکر شده 1 بار در 1 پست

    پیش فرض

    باسلام
    من میخوام با برنامه کدویژن یک ساعت بسازم وقتی از کریستال 11.0592m استفاده میکنم برنامه error نداره ولی تو شبیه سازی دقیق نیس
    الان مشکلی که دارم میخوام بجاش از کریستال 32.786k استفاده کنم clock system رو 32.786k میذارم و در تایمر 0 , clock value .128k میذارم. بقیش همون برنامه قبل هست ولی errorمربوط به ال سی دی میده و کلا هرچی برنامه تالا نوشتم و error نداشتن بعد همگی همین خطا رو میدن و باید برنامه کدویژن رو از اول نصب کنم

  19. #11
    کاربر دائمی wantedboy آواتار ها
    تاریخ عضویت
    May 2011
    نام
    علی‏ ‏محمد‏ ‏شکرالهی
    نوشته ها
    492
    تشکر
    201
    تشکر شده 629 بار در 204 پست

    پیش فرض

    نقل قول نوشته اصلی توسط maryam d نمایش پست ها
    باسلام
    من میخوام با برنامه کدویژن یک ساعت بسازم وقتی از کریستال 11.0592m استفاده میکنم برنامه error نداره ولی تو شبیه سازی دقیق نیس
    الان مشکلی که دارم میخوام بجاش از کریستال 32.786k استفاده کنم clock system رو 32.786k میذارم و در تایمر 0 , clock value .128k میذارم. بقیش همون برنامه قبل هست ولی errorمربوط به ال سی دی میده و کلا هرچی برنامه تالا نوشتم و error نداشتن بعد همگی همین خطا رو میدن و باید برنامه کدویژن رو از اول نصب کنم
    سلام‏ ‏دوست‏ ‏عزیز‏
    تنظیمات‏ ‏تایمر‏ ‏را‏ ‏از‏ ‏کد‏ ‏ویزارد‏ ‏حتما‏ ‏انجام‏ ‏بده‏ ‏و‏ ‏هم‏ ‏زمان‏ ‏ال‏ ‏سی‏ ‏دی‏ ‏هم‏ ‏تعریف‏ ‏کن‏(‏منظور‏ ‏تعیین‏ ‏پایه‏ ‏ها‏)‏.
    نکته: ‏
    فیوز‏ ‏بیت‏ ‏های‏انتخاب‏ ‏فرکانس‏یت‏ ‏را ‏ ‏باید‏ ‏روی‏ ‏فرکانس‏ ‏کریستال‏ ‏ساعت‏ ‏قرارش‏ ‏بدی.
    میتوانی‏ ‏کریستال‏ ‏داخلی‏ ‏۱‏ ‏مگا‏ ‏هرتز‏ ‏میکرو‏ ‏فعال‏ ‏کنی‏ ‏و‏ ‏فرکانس‏ تایمر‏ ‏‏میکرو‏ ‏را‏ ‏روی‏ ‏ ‏۰.۹۷۰ کیلو‏ ‏هرتز‏ ‏بزاری‏ ‏که‏ ‏با‏ ‏این‏ ‏کار‏ ‏هر‏ ‏شمارش‏ ‏تامیرت‏ ‏۱‏ ‏میلی‏ ‏ثانیه‏ ‏میشه.
    ویرایش توسط wantedboy : 08-05-2013 در ساعت 12:30

  20. #12
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2013
    نام
    مریم دشتی
    نوشته ها
    43
    تشکر
    24
    تشکر شده 1 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط wantedboy نمایش پست ها
    سلام‏ ‏دوست‏ ‏عزیز‏ ‏
    شاید‏ ‏مشکل‏ ‏از‏ ‏فیوز‏ ‏بیت‏ ‏های‏ ‏انتخاب‏ ‏فرکانس‏یت‏ ‏باشه‏ ‏که‏ ‏باید‏ ‏روی‏ ‏فرکانس‏ ‏کریستال‏ ‏ساعت‏ ‏قرارش‏ ‏بدی.
    میتوانی‏ ‏کریستال‏ ‏داخلی‏ ‏۱‏ ‏مگا‏ ‏هرتز‏ ‏میکرو‏ ‏فعال‏ ‏کنی‏ ‏و‏ ‏فرکانس‏ ‏میکرو‏ ‏را‏ ‏روی‏ ‏ ‏۰.۹۷۰ کیلو‏ ‏هرتز‏ ‏بزاری‏ ‏که‏ ‏با‏ ‏این‏ ‏کار‏ ‏هر‏ ‏شمارش‏ ‏تامیرت‏ ‏۱‏ ‏میلی‏ ‏ثانیه‏ ‏میشه.
    ممنون
    ولی پس کجا 32.786 رو بذارم؟
    ‏"فرکانس‏ ‏میکرو‏ ‏را‏ ‏روی‏ ‏ ‏۰.۹۷۰ کیلو‏ ‏هرتز‏ ‏بزاری‏"کجا باید وارد کنم ‏

  21. #13
    کاربر دائمی wantedboy آواتار ها
    تاریخ عضویت
    May 2011
    نام
    علی‏ ‏محمد‏ ‏شکرالهی
    نوشته ها
    492
    تشکر
    201
    تشکر شده 629 بار در 204 پست

    پیش فرض

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

  22. تشکرها از این نوشته :


  23. #14
    کاربر علاقه مند
    تاریخ عضویت
    Apr 2013
    نام
    مریم دشتی
    نوشته ها
    43
    تشکر
    24
    تشکر شده 1 بار در 1 پست

    پیش فرض

    ممنون

  24. #15
    کاربر دائمی wantedboy آواتار ها
    تاریخ عضویت
    May 2011
    نام
    علی‏ ‏محمد‏ ‏شکرالهی
    نوشته ها
    492
    تشکر
    201
    تشکر شده 629 بار در 204 پست

    پیش فرض

    نقل قول نوشته اصلی توسط maryam d نمایش پست ها
    ‏"فرکانس‏ تایمر‏ ‏‏میکرو‏ ‏را‏ ‏روی‏ ‏ ‏۰.۹۷۰ کیلو‏ ‏هرتز‏ ‏بزاری‏"کجا باید وارد کنم ‏
    در‏ ‏قسمت‏ ‏تنظیمات‏ ‏تامیر‏ ‏داخل‏ ‏کد‏ ‏ویزارد.

  25. تشکرها از این نوشته :


  26. #16
    تازه وارد
    تاریخ عضویت
    Apr 2018
    نوشته ها
    1
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    پیش فرض

    سلام
    باید فیوز بیت ckopt رو فعال کنی تا خازن های داخلی میکرو برای شمارش کرستال ساعت به کار بیفتن.

موضوعات مشابه

  1. راه اندازی کریستال ساعت
    توسط amin1139 در انجمن PIC
    پاسخ: 2
    آخرين نوشته: 04-04-2013, 14:57
  2. کریستال میکرو
    توسط esisafa در انجمن AVR
    پاسخ: 7
    آخرين نوشته: 29-01-2013, 13:55
  3. نحوه مقدار دهی به رجیسترها
    توسط mehdi_nxp در انجمن LPC series (NXP)
    پاسخ: 4
    آخرين نوشته: 13-08-2012, 14:12
  4. مشکل با رجیستر تایمر0
    توسط msvmehdi در انجمن PIC
    پاسخ: 0
    آخرين نوشته: 23-08-2011, 22:52
  5. کریستال خارجی
    توسط M3R در انجمن AVR
    پاسخ: 10
    آخرين نوشته: 12-03-2010, 01:32

مجوز های ارسال و ویرایش

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