نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه
آزادی حجاز از دست نااهلان
مهدی دمیرچیلو

انواع روش ریست نرم افزاری میکرو

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

انواع روش ریست نرم افزاری میکرو


 
توجه : تو این مطلب من میکرویی که استفاده میکنم آردوینو هستش ولی این مطلب برای تمام میکروکنترلرها هستش و صرفا برای آردوینو فقط نیست، چون آردوینو یکم سریع تره، ازش استفاده کردم تا مطلب رو سریع تر بنویسم.
 
انواع روش های ریست کردن میکرو از داخل خود میکرو به صورت زیر هستش : 

  1. این که یه تابع تعریف کنید که آدرسش ۰ باشه! و وقتی تابع فراخونی میشه میکرو میره به موقعیت ۰ حافظه، یعنی جایی که میکرو وقتی ریست میشه، میره اونجا.
  2. راه بعدی اینه که یه پایه میکرو رو به پایه ریست میکرو وصل کنیم و اینطوری میکرو رو ریست کنیم که اگه میکرو پایه کم داشته باشه شاید روش خوبی نباشه.
  3. یه سری روش دیگه برا ریست میکرو هستش که اونا میرن تو بحث ریست سخت افزاری که مربوط به این مطلب نمیشه، یه وصل کردن یه دکمه به پایه ریست که اینم مربوط نمیشه به این مطلب!؛ اگه روش دیگه ای میدونید بگید…

 

۱ – استفاده از یک پایه میکروکنترلر برای ریست کردن میکرو

تو این روش یکی از پایه های میکرو رو خروجی تعریف کنید و به پایه ریست وصل کنید، و با یک کردن پایه مد نظر، میکرو ریست میشه، به همین راحتی ^_^
نکته مهم : اول به صورت شکل زیر، پایه مد نظرتون رو به پایه Reset وصل نکنید، بعد از این که میکرو رو پروگرام کردید، وصل کنید، وگرنه میکرو پروگرام نمیشه.
شماتیک پروژه : 
استفاده از یک پایه میکروکنترلر برای ریست کردن میکرو
 
کد پروژه : 

 

۲ – ریست کردن نرم افزاری میکرو بدون استفاده از پایه

تو این روش همون طور که قبلا گفتم و از عنوان معلومه، از هیچ پایه میکرو استفاده نمیکنیم و یه تابع تعریف میکنیم که آدرسش ۰ هستش ( توابع هم مثل متغییر ها آدرس دارن ) و وقتی تابع مربوطه فراخوانی بشه، میکرو میره به حافظه ۰ – به همین راحتی ^_^ نحوه تعریف این تابع با آدرس ۰ به صورت زیر هستش :

 
کد پروژه : 

 
خب امیدوارم این مطلب ناچیز مفید باشه براتون، فعلا یا علی، خدافظ
 
امام خامنه ای

گروه پرسش و پاسخ الکترونیکی در سروش
مهدی دمیرچیلو گوگل میفرماید : إِنَّ اللّه مَعَ الساچِرین ( خداوند با سرچ کنندگان است )
ارسال دیدگاه
25

1) نظرات غیر فارسی به صورت خودکار حذف میشوند ( حداقل 5 حرف فارسی وارد کنید ).

2) به موارد درخواست پروژه/کد آماده و سوالاتی که بلد نباشم پاسخ داده نمیشه.

3) برای گزاشتن کدهاتون از این سایت استفاده کنید ( طبیعتا لینک کدتون رو باید برای من بفرستید! ) : debian

4) پسورد فایل های سایت : www.dmf313.ir

  1. Avatar

    مهمان

    موحد

    سلام بزرگوار. لطفا کمکم کن . فک نکنم کسی جز شما بتونه کمکم کنه wacko
    من وقتی میخوام بوت لودر رو بریزم رو atmega8 با استفاده از uno دفه اول اوکی بود اما از دوم و سوم به بعد همش این ارور رو میده :
    avrdude: error: programm enable: target doesn’t answer. 1
    avrdude: initialization failed, rc=-1
    Double check connections and try again, or use -F to override
    this check.
    چه کنم ؟
    (۱۰۰۰ بار اتصالات رو چک کردم درسته)

    • مهدی دمیرچیلو

      نویسنده این مطلب

      مهدی دمیرچیلو

      سلام-با uno نمیدونم – با پروگرامر این کارو میکردم موردی نبود- از بردهای آردینو تاحالا به عنوان پروگرامر من استفاده نکردم حقیقتا-شرمنده.

      • Avatar

        مهمان

        موحد

        اوکی.ممنون good

    • Avatar

      مهمان

      m

      یعنی دوبار میخای بوت لودرو رو یه میکرو بریزی؟

  2. Avatar

    مهمان

    روح الله

    دمت گرم داداش.

  3. Avatar

    مهمان

    hamedd

    سلام البته باید به گراند وصل بشه ریست

  4. Avatar

    مهمان

    parviz

    سلام ممنون از سایت خودتون

  5. Avatar

    مهمان

    mehdi

    سلام
    میشه یکم بیشتر درباره کد ریست کردن در قسمت دوم توضیح بدید که چجور کار میکنه
    void(*Reset) (void) = 0; wacko

  6. Avatar

    مهمان

    محمد

    سلام من کد بالا رو برای 1768 چک کردم و حواب نداد
    توی این سایت این کد رو معرفی کرده بود
    https://os.mbed.com/questions/4680/reset-command-soft-reset/
    NVIC_SystemReset();
    که جواب داد
    یاحق

  7. Avatar

    مهمان

    مسعود زاهدی

    سلام آقا مهدی توی روش اول برای این که به مشکل پروگرام نشدن برخورد نکرد باید اول اون پایه رو ۱ کنیم و بعد به عنوان خروجی تعریفش کنیم هر وقتم خواستیم ریست کنیم پایه رو صفر کنیم.

  8. Avatar

    مهمان

    محمدحسن

    با سلام و خداقوت
    بنظرم یه روش دیگه میتونه ریست نرم افزاری با تایمر واچ داگ باشه، به این صورت که با فشار دادن یه باتن برنامه بره داخل
    یه حلقه while(1) گیر کنه و توسط واچ داگ تایمر، میکرو ریست شه

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

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

  9. Avatar

    مهمان

    علی

    من یه سوال دیگه داشتم یادم رفت ،
    مگه ولتاژ پین ها tx و rx ماژول hc05 نباید ۳٫۳ ولت باشه ، پس چرا مستقیم به میکرو avr وصل کردیم ، خروجی پین ها ۵ ولت هست؟
    البته من وصل کردم ، نسوخت.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      یه تقسیم ولتاژ بزن – ولی همین کارو برا ماژول sim900 نکنی ( یعنی تقسیم ولتاژ نزنی ) درجا میسوزه

    • Avatar

      مهمان

      علی

      سلام
      الان من همین طوری استفاده کنم میسوزه ؟ چون تو شماتیک یکی از پروژه هاتون دیدم مستقیم وصل کردین به میکرو .
      ماژول من هدربوردی هست .
      باود ریت پروژه های hc05 رو ۹۶۰۰ بذارم بهتره یا ۱۱۵۲۰۰ ؟
      اگر استفاده طولانی از میکرو و بلوتوث بشه ، باید از وقفه استفاده کرد ؟ اگر نکنیم میسوزه؟ (برای چند ماه استفاده شبانه روزی).
      ممنون.

      • مهدی دمرچیلو

        نویسنده این مطلب

        مهدی دمرچیلو

        سیم۹۰۰ آره ولی بلوتوث رو نمیدونم دقیقا –
        B.R رو هم تو دیتاشیت میزان خطای هر کدوم رو زده – ولی من باشم ۱۱۵۲۰۰ رو انتخاب میکنم.
        سوختن ربطی به استفاده کردن/نکردن از وقفه نداره.

  10. Avatar

    مهمان

    علی

    سلام.
    راهی هست که بشه فلش ریست بشه یا حافظه اییپرام (پاک بشه)، مثلا با یه کد یا یا زدن کلید یا افت ولتاژ؟ یه فیوز بیت بود که از ۲٫۷ ولت پایین تر میومد ، حافظه موقت پاک میشد ، همچین چیزی برای اییپرام یا فلش وجود داره؟
    آخرین سوال : فروشگاه eca چطوره ؟ مثل ایران میکرو نیست؟
    ممنون.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      حافظه فلش برا چی ریست بشه؟
      حافظه ایپرام رو ریست کنی در صورت کاهش ولتاژ؟ چراااااااااا؟
      eca مشکلات ایران میکرو رو نداره – حداقل من تاحالا ندیدم ازش.

  11. Avatar

    مهمان

    xxabasxx

    باعرض سلام خدمت دوست خوبم آقای مهدی دمرچیلو
    بسیار بسیار بسیار از سایت خوب شما ممنون و سپاسگذارم
    من از سایت شما خیلی مطالب یاد گرفتم ،چون تمام مطالب رو به زبان خیلی ساده بیان میکنید و این عالیه
    اگر امکان داره و اگر اشکال نداره ایمیل خودتون رو در اختیار من بگذارید تا مطالب و اشکالات و سوالاتم رو مستقیم به ایمیلتان بفرستم برای گرفتن پاسخ سریعتر
    انشالله که خداوند توفیق روز افزون به شما عطا کند
    ممنون و سپاسگذارم
    good good good

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام-سوالات فقط در سایت یا گروه تلگرامی.

  12. Avatar

    مهمان

    مسعود قاسم زاده

    سلام
    بابت سایت خوبتون تشکر می کنم
    خیلی خوبه .
    اجرتون با امام حسین علیه السلام .

  13. Avatar

    مهمان

    علی

    سلام.
    از کدوم سایت ها بخرم بهتره؟
    روبوایکیو خوبه؟
    ممنون.

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام – خوبه بد نیست

  14. Avatar

    مهمان

    علی

    سلام آقای دمرچیلو.
    من می خوام اینترنتی خرید کنم ، کلی قطعه سفارش دادم توی سایت ایران میکرو ، می خواستم بدونم ایران میکرو چجوریه؟ از بقیه بهتره ؟ همه چیز رو درست میفرسته؟(قطعات اشتباه نشن) آخه ۶۰۰ قلم جنسه.
    اگه میشه هرچه سریعتر جواب بدین، امروز آخرین مهلت ثبت سفارش هست.
    ممنونم. smile

    • مهدی دمرچیلو

      نویسنده این مطلب

      مهدی دمرچیلو

      سلام
      دیر میفرسته – ممکنه بعضی چیزا رو از قلم بندازن و هزینش رو ندن ( برا خودم رخ داده این مشکل )