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

موضوع: مشکل عملکرد میکرو در عمل

  1. #1
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    Gadid مشکل عملکرد میکرو در عمل

    سلام به همه دوستان
    تو مدار زیر من واسه میکرو با تایمر برنامه نوشتم که هروقت آشکار ساز عبور از صفر فعال شد بعد از گذشت یه زمانی توی خروجی های میکرو (2 خروجی) یه پالسی داشته باشم. این کار توی پروتئوس به خوبی جواب میده. وقتی تو عمل هم می بندمش قسمت آشکار ساز هم درست کار میکنه ولی خروجی میکرو پالس های درستی نمیده یعنی اگه مثلا قراره هر 10 میلی ثانیه یه پالس بده این زمان درست نیست و مثلا یه بار 3 میلی ثانیه و یه بار 7 میلی ثانیه و... میده. و روی اسیلوسکوپ موج حرکت میکنه.
    امیدوارم منظورم رو تونسته باشم رسونده باشم.
    من از کریستال استفاده نکردم و تنظیمات فیوز بیت ها رو هم نمیدونم چی به چیه؟ اگه فکر میکنید دلیلش این ها ست بهم بگید چیکار کنم.
    بازم اگه جاییش مبهم بود بگید تا بهتون بگم.یا اگه لازم شد برنامشو بذارم
    این شکل مدار:
    http://www.pic1.iran-forum.ir/images...3972827546.png
    اینم شکل موج:

    http://www.pic1.iran-forum.ir/images...5252115997.png
    ویرایش توسط afza_saeghe : 19-07-2012 در ساعت 16:09

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

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

    پیش فرض

    نقل قول نوشته اصلی توسط afza_saeghe نمایش پست ها
    بازم اگه جاییش مبهم بود بگید تا بهتون بگم.یا اگه لازم شد برنامشو بذارم
    سلام مهندس
    لطفا برنامه اي كه نوشتينو بذارين. اينطوري بهتر ميشه كمك كرد.
    البته معمولا تو پروتئوس درست جواب ميده و وقتي عملي ميبنديم تازه متوجه ميشيم كه برنامه اشتباهي داره يا نه؟
    _____________________________________
    _____________________________________

  4. #3
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض

    این برنامه مربوط به قسمت تایمره:


    interrupt [EXT_INT0] void ext_int0_isr(void)
    {
    z=1; // har palse oboor az sefr z ra 1 karde va varede timer mishavad.
    }
    interrupt [TIM2_OVF] void timer2_ovf_isr(void)
    {
    fire=90;
    if(z==1)
    {
    TCNT2=0xca; // timer zamane 54us ra tolid mikonad.
    x++; // har x barabar ba 1 daraje mibashad.
    if(x==fire) // agar meghdare x barabar ba zavieye atash shod yek pulse be arze 10us tolid mikonad.
    {
    PORTC.2=1;
    delay_us(10);
    PORTC=0x00;
    }
    if(x==fire+180)
    {
    PORTC.3=1;
    delay_us(10);
    PORTC=0x00;
    z=0; // ba sefr kardane z halghe montazere pulse oboor az sefre badi mishavad.
    x=0;
    }}}
    داداش هرکاری میکنم اینجا درست نشون نمیده یه زحمت بکش کپیش کن تو word تا بتونی درست ببینی
    ویرایش توسط afza_saeghe : 20-07-2012 در ساعت 12:13

  5. #4
    کاربر فعال
    تاریخ عضویت
    Mar 2010
    نوشته ها
    236
    تشکر
    101
    تشکر شده 246 بار در 163 پست

    پیش فرض

    برای اینکه تایمر مقدار درست رو تولید کنه شما باید با ورود به اینتراپت تایمر ،
    تایمر رو مقدار دهی کنید و بعد کدهاتون رو بنویسید که در این حالت میشه:
    کد:
    interrupt [TIM2_OVF] void timer2_ovf_isr(void)
    {
    TCNT2=0xca; // timer zamane 54us ra tolid mikonad.
    fire=90;
    .
    .
    .
    البته کد رو هم بهتر میشه نوشت

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


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

    پیش فرض

    نقل قول نوشته اصلی توسط afza_saeghe نمایش پست ها
    این برنامه مربوط به قسمت تایمره:


    interrupt [ext_int0] void ext_int0_isr(void)

    {

    z=1; // har palse oboor az sefr z ra 1 karde va varede timer mishavad.

    }

    interrupt [tim2_ovf] void timer2_ovf_isr(void)

    {

    fire=90;

    if(z==1)

    {

    tcnt2=0xca; // timer zamane 54us ra tolid mikonad.

    x++; // har x barabar ba 1 daraje mibashad.

    if(x==fire) // agar meghdare x barabar ba zavieye atash shod yek pulse be arze 10us tolid mikonad.

    {

    portc.2=1;

    delay_us(10);

    portc=0x00;

    }

    if(x==fire+180)

    {

    portc.3=1;

    delay_us(10);

    portc=0x00;

    z=0; // ba sefr kardane z halghe montazere pulse oboor az sefre badi mishavad.

    x=0;

    }}}
    داداش هرکاری میکنم اینجا درست نشون نمیده یه زحمت بکش کپیش کن تو word تا بتونی درست ببینی
    سلام مهندس
    مقاديري كه براي تنظيم تايمر دادين، براي كريستال چند مگاهرتزيه؟
    احتمالا مشكل مربوط به اين ميشه كه شما فيوزبيت رو درست تنظيم نكردين.
    ویرایش توسط sadmonew : 20-07-2012 در ساعت 17:04
    _____________________________________
    _____________________________________

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


  9. #6
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    سلام مهندس
    مقاديري كه براي تنظيم تايمر دادين، براي كريستال چند مگاهرتزيه؟
    احتمالا مشكل مربوط به اين ميشه كه شما فيوزبيت رو درست تنظيم نكردين.
    از کریستال استفاده نکردم و فرکانس داخلی میکرو 8 مگاهرتزه
    فیوزبیت رو روی 8 مگاهرتز تنظیم کردم. این یکی رو میدونستم

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

    پیش فرض

    سلام
    مهندس تو عكسي كه نشون دادين، گراند رو درست انتخاب نكردين.
    تصاوير کوچک فايل پيوست تصاوير کوچک فايل پيوست برای دیدن سایز بزرگ روی عکس کلیک کنید

نام: amal-nakardan.png
مشاهده: 29
حجم: 53.8 کیلو بایت  
    _____________________________________
    _____________________________________

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


  12. #8
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض پاسخ: مشکل عملکرد میکرو در عمل

    اگه منظورتون پایه های avcc و aref هستش اونا رو تغییردادم چون می خوام از ADC هم استفاده کنم این دو پایه رو به هم متصل کردم و بعد به سر وسط یه سلف و خازن وصل کردم و سلف رو به vcc و خازن رو به gnd وصل کردم ولی هنوز تستش نکردم.
    این کارم درسته مهندس؟
    ولی اگه منظورتون جای دیگه ی مداره متوجه منظورت نشدم. شکلی هم که گذاشتید باز نمیشه.
    میشه بیشتر راهنماییم کنید؟

  13. #9
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض

    عکس رو تونستم ببینم
    آره تو عمل این زمین رو ندارم اینو واسه این گذاشتم که پروتئوس درست کار کنه.
    خروجی آشکار ساز عبور از صفر درست کار میکنه
    اما یه سوال
    آیا من باید زمین امیتر ترانزیستور رو با زمین میکرو یکی درنظر بگیرم؟ من جدا در نظر گرفتمشون

  14. #10
    ناظم سایت KHM آواتار ها
    تاریخ عضویت
    Jul 2010
    نوشته ها
    1,047
    تشکر
    2,895
    تشکر شده 2,131 بار در 905 پست

    پیش فرض

    نقل قول نوشته اصلی توسط afza_saeghe نمایش پست ها
    عکس رو تونستم ببینم
    آره تو عمل این زمین رو ندارم اینو واسه این گذاشتم که پروتئوس درست کار کنه.
    خروجی آشکار ساز عبور از صفر درست کار میکنه
    اما یه سوال
    آیا من باید زمین امیتر ترانزیستور رو با زمین میکرو یکی درنظر بگیرم؟ من جدا در نظر گرفتمشون
    آره رفیق..باید زمین q3 با میکرو مشترک باشه

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


  16. #11
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط crz_boy نمایش پست ها
    آره رفیق..باید زمین q3 با میکرو مشترک باشه
    زمین رو هم درست کردم بازم درست نشد

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

    پیش فرض

    سلام مهندس
    به نظرم اول از درست كار كردن سخت افزار مطمئن بشين. مثلا با اوسكوپ سيگنال هاي خروجي رو چك كنيد.(منظورم به صورت عملي). خودم بعضي مواقع با همچين مشكلاتي روبرو شدم.
    برنامه درست بود اما جواب درستي نميتونستم ازش بگيرم و در نهايت مشكل اصلي از سخت افزار بود كه سيگنال خروجي درستي به ميكرو ارساي نميكرد و همين مسئله كلي مارو سر كار ميذاشت و وقتمون رو الكي ميگرفت.
    _____________________________________
    _____________________________________

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


  19. #13
    کاربر فعال M_GH آواتار ها
    تاریخ عضویت
    Mar 2012
    نام
    م. غیور
    نوشته ها
    314
    تشکر
    464
    تشکر شده 367 بار در 177 پست

    پیش فرض

    ببین اصلا شاید اتصالی ترک خوردگی چیزی داری
    (اتصال و ترک لحیم هات رو هم چک کن)

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


  21. #14
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط sadmonew نمایش پست ها
    سلام مهندس
    به نظرم اول از درست كار كردن سخت افزار مطمئن بشين. مثلا با اوسكوپ سيگنال هاي خروجي رو چك كنيد.(منظورم به صورت عملي). خودم بعضي مواقع با همچين مشكلاتي روبرو شدم.
    برنامه درست بود اما جواب درستي نميتونستم ازش بگيرم و در نهايت مشكل اصلي از سخت افزار بود كه سيگنال خروجي درستي به ميكرو ارساي نميكرد و همين مسئله كلي مارو سر كار ميذاشت و وقتمون رو الكي ميگرفت.
    همین کار رو هم کردم و برنامه رو تغییر دادم و گفتم بدون تحریک پالس ورودی خروجی میکرو به صورت متناوب پالس بده و دوباره همون مشکل وجود داشت. یعنی ایراد از مدار آشکار ساز عبور از صفر نبود.
    امکان داره به خاطر اینکه من از کریستال استفاده نکردم این مشکل به وجود اومده باشه؟
    واسه این میگم چون میکرو قراره پالس های با عرض کمی مثل 55 میکروثانیه رو تولید کنه بعد این ها رو بشماره و مثلا 90 تا که شد یه خروجی بده.

  22. #15
    عضو جدید
    تاریخ عضویت
    Jul 2012
    نوشته ها
    9
    تشکر
    6
    تشکر شده 1 بار در 1 پست

    پیش فرض

    نقل قول نوشته اصلی توسط m_gh نمایش پست ها
    ببین اصلا شاید اتصالی ترک خوردگی چیزی داری
    (اتصال و ترک لحیم هات رو هم چک کن)
    روی برد برد بستمش و چند بار چکش کردم

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

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