نمایش/عدم نمایش سایدبار
رفتن به بالای صفحه

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

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

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


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

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

 

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

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

 

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

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

 
کد پروژه : 

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

پسورد فایل های سایت :
www.dmf313.ir
جنگ ما فتح قدس را در پی خواهد داشت (امام خمینی) >>>>>> اگر از صدام بگذریم، اگر مسأله قدس را فراموش کنیم، اگر از جنایت های امریکا بگذریم از آل سعود نخواهیم گذشت. ان‌شاالله اندوه دلمان را را در وقت مناسب با انتقام از امریکا و ال سعود برطرف خواهیم کرد و داغ و حسرت حلاوت این جنایت بزرگ را بر دلشان خواهیم گذاشت و با برپایی جشن پیروزی حق بر جنود کفر و نفاق و آزادی کعبه از دست نااهلان و نامحرمان به مسجد الحرام وارد خواهیم شد (امام خمینی)
ارسال دیدگاه
25

1) تعداد حروف غیر فارسی از حروف فارسی بیشتر باشه دیدگاه به صورت خودکار حذف میشه.

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

3) برای گزاشتن کدهاتون از این سایت استفاده کنید : debian

  1. مهمان

    موحد

    سلام بزرگوار. لطفا کمکم کن . فک نکنم کسی جز شما بتونه کمکم کنه 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.
    چه کنم ؟
    (۱۰۰۰ بار اتصالات رو چک کردم درسته)

    1397/08/27
    11:00
    • نویسنده این مطلب

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

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

      1397/08/27
      11:23
      • مهمان

        موحد

        اوکی.ممنون good

        1397/08/27
        07:06
    • مهمان

      m

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

      1397/08/27
      08:51
  2. مهمان

    روح الله

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

    1397/07/11
    01:03
  3. مهمان

    hamedd

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

    1397/06/08
    02:02
  4. مهمان

    parviz

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

    1396/10/27
    01:30
  5. مهمان

    mehdi

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

    1396/09/10
    09:30
  6. مهمان

    محمد

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

    1396/08/05
    01:05
  7. مهمان

    مسعود زاهدی

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

    1396/01/06
    07:05
  8. مهمان

    محمدحسن

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

    1396/01/01
    11:34
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1396/01/02
      12:23
  9. مهمان

    علی

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

    1395/12/30
    09:19
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/30
      09:39
    • مهمان

      علی

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

      1395/12/30
      08:18
      • نویسنده این مطلب

        مهدی دمرچیلو

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

        1396/01/01
        10:54
  10. مهمان

    علی

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

    1395/12/30
    09:11
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/30
      09:38
  11. مهمان

    xxabasxx

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

    1395/12/23
    12:33
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/23
      12:53
  12. مهمان

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

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

    1395/12/21
    10:53
  13. مهمان

    علی

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

    1395/12/20
    05:43
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/20
      05:54
  14. مهمان

    علی

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

    1395/12/20
    03:23
    • نویسنده این مطلب

      مهدی دمرچیلو

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

      1395/12/20
      04:22